考虑以下 XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
</CATALOG>
我想解析此 XML 并将以下内容打印到标准输出:
Bob Dylan recorded Empire Burlesque in 1985.
Bonnie Tyler recorded Hide your heart in 1988.
在 Java 中执行此操作最简单的方法是什么?
我很沮丧,因为在某些语言中我可以用 5 或 6 行解析此 XML,但在 Java 中我知道的唯一方法是编写自己的 SAX 解析器,这意味着我需要大约 50 行代码;是我在其他地方可能使用的 10 倍! Java 是否有一个 super 简单的 XML 解析器适合这样的简单任务?
(我知道有类似的问题,但它们要么不包含示例,要么示例涉及长的、部分的和/或深度嵌套的 XML。这个问题有一个简单的示例,希望能得到一些好的答案用工作代码来区分它。)
最佳答案
尝试XOM .
import nu.xom.*;
List<Element> cds = new Builder().build(inputFile).getRootElement().query("CD");
for (Element e : cds) {
System.out.println(e.getFirstChildElement("ARTIST").getValue()
+ " recorded "
+ e.getFirstChildElement("TITLE").getValue()
+ " in "
+ e.getFirstChildElement("YEAR").getValue());
}
关于java - 只需几行 Java 即可解析 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10707585/