该代码所在函数的输入是Node configNode。我需要提取子节点inTemplate的值。以下是代码。仅打印null。

XPath xpath = XPathFactory.newInstance().newXPath();
Node inTemplateNode = (Node) xpath.compile("@inTemplate").evaluate(configNode, XPathConstants.NODE);
String inTemplate = (inTemplateNode != null) ? inTemplateNode.getTextContent() : null;
        System.out.println("inTemplate Value =" + inTemplate);


谁能帮我解决为什么此代码无法正常工作。

最佳答案

XPath表达式@inTemplate选择上下文节点名为inTemplate的属性(例如<config inTemplate="foo"/>)。如果您确实需要属性值,那么((Element)configNode).getAttribute("inTemplate")应该可以在DOM中工作,而无需使用任何XPath。

如果要选择名为<config><inTemplate>foo</inTemplate></config>的子元素(例如inTemplate),请使用路径inTemplate而不是@inTemplate

关于java - 如何在Java中解析节点并提取子节点的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35462015/

10-10 14:53