2011-05-10 153 views
2

示例XML文档中提取2个兄弟节点之间的内容的XML文档中:如何使用Java

<a> 
    <b>...</b> 
    xyz 
    <c>...</c> 
</a> 

有没有一种方法来提取放置使用Java代码的标签bc之间的内容xyz(通过DOM解析)?

+0

这是固定的格式? – 2011-05-10 12:51:50

+0

请制定一个正确的问题。你有什么问题? – marzapower 2011-05-10 12:51:57

+1

是的,它是一种固定格式。 – 2011-05-10 12:58:39

回答

1

假设元素引用标记“的”下面的代码应该提取你想和工作是什么,如果你还之前和之后的“B”和“C”的标签有内容

NodeList content = element.getChildNodes(); 
    StringBuilder textContent = new StringBuilder(); 
    int cntLength = content.getLength(); 
    for (int i = 0; i < cntLength; i++) { 
     Node paramValue = content.item(i); 
     short type = paramValue.getNodeType(); 
     if ((type == Node.TEXT_NODE) || (type == Node.CDATA_SECTION_NODE)) { 
      textContent.append(((CharacterData) paramValue).getData()); // Both Text and CDATASection nodes are SubType of CharacterData 
     } 
    } 
1

遍历根元素的节点(<a>)。在你的例子中,第二个节点(索引2,因为节点从1索引)将成为文本节点。

Document document = ...; // create org.w3c.dom.Document instance from XML 
document.getDocumentElement().getChildNodes().item(2).getTextContent();