如何解析Node并在Java中提取子节点的值?

时间:2016-02-17 16:13:08

标签: java xpath

此代码所在函数的输入是Node configNode。我需要在模板中提取子节点的值。以下是代码。只打印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);

任何人都可以帮助我解释为什么这段代码不起作用。

1 个答案:

答案 0 :(得分:1)

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

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