0

我需要使用 xpath 获取节点的所有子节点及其标签,假设我有一个节点

 <div id="topbar">
    <ul>
    <li>product No</li>
    <li>product name</li>
    <li>product details</li>
    </ul>
 </div>

然后我想要预期的输出为

<ul>
    <li>product No</li>
    <li>product name</li>
    <li>product details</li>
</ul>

我试过 //div[@id='topbar']/node() 它正在返回正确的节点及其子节点

 XPath xpath1 = new DOMXPath(item.getXpathToExtractValue());
    Object itemObject = xpath1.selectSingleNode(element);
    if (itemObject instanceof Node)
      Node itemElement = (Node) itemObject;

当我使用 itemElement.getNodeValue() 它返回产品没有产品名称产品详细信息不是预期的输出。

4

1 回答 1

0

getNodeValue() 返回节点的文本内容。您需要将节点转换为字符串,例如:

    StringWriter writer = new StringWriter();
    TransformerFactory.newInstance()
        .newTransformer()
        .transform(new DOMSource(node), new StreamResult(writer));
    return writer.toString();
于 2012-08-17T11:27:13.850 回答