该代码所在函数的输入是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/