從XML

2013-12-23 18 views
-1

取標籤名稱我有一些XML:從XML

<Details> 
    <name>sam</name> 
    <age>18</age> 
</Details> 

使用下面的代碼,我能夠讀出的值值sam18。我還需要檢索元素名稱nameage。我如何得到它?

我當前的代碼:

Element root = XMLDocument.getDocumentElement(); 
NodeList nodelist = root.getChildNodes(); 
String[] rowdata = new String[2]; 
for (int nodeIndex = 0; nodeIndex < nodelist.getLength(); nodeIndex++) { 
    Node node = nodelist.item(nodeIndex); 
    for(int elementIndex=0; elementIndex<node.getChildNodes().getLength(); elementIndex++){ 
    rowdata[0] = node.getChildNodes().item(elementIndex).getNodeName().toString(); 
    rowdata[1] = node.getChildNodes().item(elementIndex).getTextContent(); 
    System.out.println(rowdata[0] + " - " + rowdata[1]); 
    } 
} 
+0

[?你嘗試過什麼(HTTP ://www.whathaveyoutried.com/)我的意思是*除了*問我們。 –

+0

嘗試使用DOM解析器 – Sach

+0

@ user3089869將來,請按照我所做的將該代碼添加到您的問題中。你能解釋一下你的代碼有什麼問題嗎?告訴我們任何錯誤和與預期行爲的偏差。 –

回答

0

下面的代碼演示如何打印元素名稱:

String xml = "<Details><name>sam</name><age>18</age></Details>"; 
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
Document xmlDocument = dBuilder.parse(new ByteArrayInputStream(xml 
    .getBytes("US-ASCII"))); 

Element root = xmlDocument.getDocumentElement(); 
NodeList nodelist = root.getChildNodes(); 
String[] rowdata = new String[2]; 
for (int nodeIndex = 0; nodeIndex < nodelist.getLength(); nodeIndex++) { 
    Node node = nodelist.item(nodeIndex); 

    if (node.getNodeType() == Node.ELEMENT_NODE) { 
    System.out.println(node.getNodeName()); // Here we can print the element name 
    } 

    for (int elementIndex = 0; elementIndex < node.getChildNodes() 
     .getLength(); elementIndex++) { 

    Node childNode = node.getChildNodes().item(elementIndex); 
    rowdata[0] = childNode.getNodeName().toString(); 
    rowdata[1] = childNode.getTextContent(); 
    System.out.println(rowdata[0] + " - " + rowdata[1]); 
    } 
} 

輸出:

name 
#text - sam 
age 
#text - 18