我想獲得Java中的XML元素的兄弟姐妹。我如何獲得Java中的XML元素的兄弟姐妹(使用DOM解析器)?
的xml文件如下:
<parent>
<child1> value 1 </child1>
<child2> value 2 </child2>
<child3> value 3 </child3>
</parent>
我在Java代碼中使用DOM解析器如下:
package dom_stack;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class DOM_stack {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
File file = new File("root.xml");
if (file.exists()){
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
Document doc;
doc = dbf.newDocumentBuilder().parse("root.xml");
NodeList elemNodeList = doc.getElementsByTagName("child1");
for(int j=0; j<elemNodeList.getLength(); j++) {
System.out.println("The node's value that you are looking now is : " + elemNodeList.item(j).getTextContent());
System.out.println(" Get the Name of the Next Sibling " + elemNodeList.item(j).getNextSibling().getNodeName());
System.out.println(" Get the Value of the Next Sibling " + elemNodeList.item(j).getNextSibling().getNodeValue());
}
}//if file exists
}
}
不幸的是,結果是:
run:
The node's value that you are looking now is : value 1
Get the Name of the Next Sibling #text
Get the Value of the Next Sibling
,它應該是:
run:
The node's value that you are looking now is : value 1
Get the Name of the Next Sibling child2
Get the Value of the Next Sibling value2
那麼,我怎樣才能得到理想的輸出?
感謝,提前
感謝您的回覆,但我仍然無法打印兄弟姐妹的節點名稱和值與System.out.println.How我可以這樣做嗎? – programmer
元素沒有值 - 請參閱表格[here](http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/Node.html)。 'child2'有一個單獨的孩子,它是一個文本節點。您可以通過調用'sibling.getNodeName()'來獲取節點名稱。你可以通過調用'sibling.getTextContent()'來獲得兄弟的文本內容。 – McDowell
這還沒有爲我着迷,加我的解答作爲答案 – Pali