可能重复:
How to use StaX
嘿伙计,所以我有一个XML文件,我希望Java吐出特定标签的价值。例如,这是我的XML:
<?xml version="1.0"?>
<dennis>
<hair>brown</hair>
<pants>blue</pants>
<gender>male</gender>
</dennis>
所以,让我们说我希望Java吐出“性别”的价值是否有我可以使用的代码
XMLStreamReader.goToTag("gender");
System.out.println(XMLStreamReader.getLocalName());
答案 0 :(得分:1)
您可以执行以下操作:
StreamSource xml = new StreamSource("input.xml");
XMLStreamReader xsr = xif.createXMLStreamReader(xml);
xsr.nextTag();
while(!xsr.getLocalName().equals("gender")) {
xsr.nextTag();
}
XPath API
您还可以使用javax.xml.xpath
API:
package forum12062255;
import java.io.StringReader;
import javax.xml.xpath.*;
import org.xml.sax.InputSource;
public class XPathDemo {
private static final String XML = "<dennis><hair>brown</hair><pants>blue</pants><gender>male</gender></dennis>";
public static void main(String[] args) throws Exception {
XPathFactory xpf = XPathFactory.newInstance();
XPath xPath = xpf.newXPath();
InputSource inputSource = new InputSource(new StringReader(XML));
String result = (String) xPath.evaluate("//gender", inputSource, XPathConstants.STRING);
System.out.println(result);
}
}
答案 1 :(得分:0)
Guitarroka。
当我开始学习使用Java进行XML解析时,我遵循了this tutorial。
使用STaX你需要这样的东西(不会发布完整的代码列表):
if (event.asStartElement().getName().getLocalPart().equals("gender"))
如果你坚持要获得一个特定的标记值,你应该查看DOM解析器,它从XML文档构建一个树,这样你就可以访问元素“gender”({{3}中列出了DOM的例子})。 好的