在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并忽略标签[重复]的主要内容,如果未能解决你的问题,请参考以下文章