从 XML 文件 (Java) 中的特定标签解析内容
Posted
技术标签:
【中文标题】从 XML 文件 (Java) 中的特定标签解析内容【英文标题】:Parse content from a specific tag in XML file (Java) 【发布时间】:2015-09-17 10:45:46 【问题描述】:我有一个如下所示的 XML 文件,我需要使用 Java 生成一个 .txt 文件,其中包含标记中的纯文本,每一个都在一行中。
我读到我可以使用 SAX 来访问不同的标签,但是在这种情况下,在下面的示例中可能有随机标签,这是无效的。
执行此操作的最佳方法是什么?也许是正则表达式?
<?xml version="1.0" encoding="utf-8"?>
[...]
<source>
<g id="_0">
<g id="_1">First valid sentence</g>
</g>
</source>
<source>Another valid string</source>
输出的 results.txt 应该是这样的:
First valid sentence
Another valid string
【问题讨论】:
已编辑。抱歉,我还没有阅读随机标签部分。我会将整个文档视为一个字符串,并首先尝试提取“随机”标签标识符。 使用 SAX,您只需等待开始标记,打开标志,然后收集您看到的所有字符,直到看到结束标记。只需忽略内部标签的开始和结束事件。 @JPMoresmau 所以在你的解决方案中我仍然需要使用正则表达式来丢弃您可以使用joox
库来解析xml
数据。使用其find()
方法可以获得所有<source>
元素,然后使用getTextContent()
提取其文本,例如:
import java.io.File;
import java.io.IOException;
import org.xml.sax.SAXException;
import static org.joox.JOOX.$;
public class Main
public static void main(String[] args) throws SAXException, IOException
$(new File(args[0]))
.find("source")
.forEach(elem -> System.out.println(elem.getTextContent().trim()));
我将假设一个格式良好的 xml
文件,例如:
<?xml version="1.0" encoding="utf-8"?>
<root>
<source>
<g id="_0">
<g id="_1">First valid sentence</g>
</g>
</source>
<source>Another valid string</source>
</root>
它产生:
First valid sentence
Another valid string
【讨论】:
以上是关于从 XML 文件 (Java) 中的特定标签解析内容的主要内容,如果未能解决你的问题,请参考以下文章
在 NodeJs 中使用 fast-xml-parser 将特定标签解析为数组
使用 Sax Parser、Java 处理 XML 中的空标签