我有了像这样的XML:获取某个节点从XML在Java中不工作
<ListOfErrors> <Error> <ErrorCode>1</ErrorCode> <Severity>Critical</Severity> </Error> <Error> <ErrorCode>15414</ErrorCode> <Severity>Non-Critical</Severity> </Error> </ListOfErrors>
我想的是,通过接收错误代码,我可以根据检索其他值错误。例如,我收到错误1,我知道严重程度。
我这样做:
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("file.xml"));
String xPathExpression = "//Error[ErrorCode=1]";
XPath xpath = XPathFactory.newInstance().newXPath();
NodeList nodes = (NodeList) xpath.evaluate(xPathExpression,
document, XPathConstants.NODESET);
System.out.println(nodes.getLength());
Element firstElement = (Element)nodes.item(0);
System.out.println("Severity"+firstElement.getAttribute("Severity"));
我知道它不工作,但我不知道我丢失,xPathExpression工作正常,因为如果我把它仅仅作为//错误和我打印nodes.getlength然后我得到所有的错误类型。 有什么帮助吗?