您可能不得不以一种或另一种方式阅读 XML 和 XPath。访问该参赛者的一种简单方法是使用jOOX,这是我编写的一个库,用于在 Java 中与 XML 进行类似 jquery 的简单交互。使用 jOOX,您可以编写:
// import the "$() and attr()" operators in your Java class
import static org.joox.JOOX.*;
// With CSS selector syntax, just as in jquery:
String result = $(xmlstring).find("Contestant[Name='ATILIA']").text();
// With XPath
String result = $(xmlstring).xpath("//Contestant[@Name='ATILIA']").text();
// With the jOOX API
String result = $(xmlstring).find("Contestant")
.filter(attr("Name", "ATILIA"))
.text();
当然,您还有很多其他选择。另一种方法是在没有任何第三方库的情况下解析 XML,如下所示:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader(xmlstring)));
NodeList nodes = document.getElementsByTagName("Contestant");
for (int i = 0; i < nodes.getLength(); i++) {
Element element = (Element) nodes.item(i);
if ("ATILIA".equals(element.getAttribute("Name"))) {
// Found it!
System.out.println(element.getTextContent());
}
}
我建议您不要将 XML 视为纯字符串,然后使用您自己的子字符串方法开始解析/读取它。这种技术有很多地方会出错!