此代码所在函数的输入是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);
任何人都可以帮助我解释为什么这段代码不起作用。
答案 0 :(得分:1)
XPath表达式@inTemplate
选择上下文节点的名为inTemplate
的属性(例如<config inTemplate="foo"/>
)。如果你真的需要一个属性值,那么执行((Element)configNode).getAttribute("inTemplate")
应该在DOM中工作,而不需要使用任何XPath。
如果您要选择名为<config><inTemplate>foo</inTemplate></config>
的子元素(例如inTemplate
),请使用路径inTemplate
而不是@inTemplate
。