![](/img/trans.png)
[英]how to get the value of attribute processing by STAX using java language?
[英]how to get the child node value on attribute stax Java
我需要STAX Java中的指导,我有xml文件,需要在满足先前的父节点本ID属性值之前获取内部元素值。 例如。
<books>
<book id = "1">
<chap num ="1"> This First Title </chap>
<chap num ="2"> This second of first book </chap>
</book>
<book id = "2">
<chap num ="1"> This First Title of second book </chap>
<chap num = "2"> This Second of second book </chap>
</book>
</books>
我需要根据书属性ID的比较来确定“章”元素中的属性值。
只是提示会指导我。
您需要按照以下方式做一些事情
String xmlString = ...
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse(xmlString);
XPathFactory xPathfactory = XPathFactory.newInstance();
XPath xpath = xPathfactory.newXPath();
String xpathExp = "/books/book[@id=\"2\"]";
Node node = (Node) xpath.evaluate(xpathExp, doc, XPathConstants.NODE);
在“书”节点上,您可以遍历子级(“章”节点)。 或者,您可以通过以下方式直接访问子节点列表:
String xpathExp = "/books/book[@id=\"2\"]/chap";
NodeList chapNodeList = (NodeList) xpath.evaluate(xpathExp, doc, XPathConstants.NODESET);
然后,您可以从“章”节点中检索属性值。 (例如, node.getTextContent();
)
或者,如果知道所需的章节,请修改xpath表达式以使其更具体。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.