您可能需要以某种方式阅读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作为普通字符串,并开始解析/用自己的子读它方法。这种技术有很多可能出错的地方!
如果字符串真的是在你的例子一样简单,你可以使用像'yourString.replaceFirst一个正则表达式( “*?名称= \ ”ATILIA \“>(\\ d +)<。*” ,“$ 1”)。但是,像@Lukas Eder所建议的那样,你会更安全地使用xml解析库和xpath。 – nansen 2012-04-07 10:30:22
什么正则表达式?这只是xml – kommradHomer 2012-04-07 10:39:24
@kommradHomer:我没有建议它作为首选的方式。只是说,如果你知道你正在处理的是什么类型的字符串和一个简单的单行可以做的,为什么还要使用任何XML库? – nansen 2012-04-07 10:46:50