【问题标题】:Parse XML in Java and ignore a tag [duplicate]在Java中解析XML并忽略标签[重复]
【发布时间】:2014-07-13 15:12:25
【问题描述】:

我有一个 XML 文件,我想从一个标签中获取文本,但如果该文本包含另一个标签,则忽略它。例如:

<?xml version="1.0"?>
<entries>
  <entry accente="B" diacritice="B">
    <sense class="0" value="B">
      <definition>
        <RegDef>Hello  <i>world.</i> Today is Saturday.</RegDef>
      </definition>
    </sense>
  </entry>
 </entries>

输出应该是:“Hello world。今天是星期六。

最好的方法是什么?

【问题讨论】:

  • 不是正则表达式:stackoverflow.com/a/1732454/3580294
  • 当您使用 XPath 进行解析时,您可以指定您想要的结果类型。如果您没有指定任何特定类型,您会得到一个String,在这种情况下,这恰好是您想要的。所以看看XPath。如果您不知道该怎么做,请发表评论,我会发布正确的答案。
  • @Braj 也许这个问题的后半部分是那个问题的重复 - 但这个问题不涉及拉出所需的标签开始。

标签: java xml xml-parsing


【解决方案1】:

谢谢你,@大卫华莱士。

String expression = "/entries/entry/sense/definition/RegDef";
System.out.println(expression);
String RegDef = xPath.compile(expression).evaluate(xmlDocument);
System.out.println(RegDef);

这正是我想要的。

【讨论】:

  • 看起来完全正确。干得好,祝你好运。
【解决方案2】:

我相信,忽略 xml 中的标签是不可能的。 所以解决您的问题的最佳方法是,

1-将XML的内容读入String

2- 解析字符串并删除所有不需要的标签和字符。

3- 将字符串写回到文件中。或者如果您无法修改原始文件,请创建一个新文件

4- 解析修改/新文件。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    相关资源
    最近更新 更多