在Java中解析XML并忽略标签[重复]

Posted

技术标签:

【中文标题】在Java中解析XML并忽略标签[重复]【英文标题】:Parse XML in Java and ignore a tag [duplicate] 【发布时间】: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。今天是星期六。

最好的方法是什么?

【问题讨论】:

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

希望这会有所帮助。

【讨论】:

以上是关于在Java中解析XML并忽略标签[重复]的主要内容,如果未能解决你的问题,请参考以下文章

解析带有重复标签的 XML 文件

java将字符串转换为xml并解析节点[重复]

iPhone解析XML数据,标签未出现

Java 解析 XML 文档给出“Prolog 中不允许的内容”。错误[重复]

在 Java 中使用 XPath 解析 XML [重复]

C# 解析字符串xml