2013-10-08 36 views
0
InputStream is = openHTTPConnection("blahblah"); 
DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance(); 
DocumentBuilder builder; 
Document doc = null; 
try { 
    builder = fac.newDocumentBuilder(); 
    doc = builder.parse(is); 
} catch (ParserConfigurationException e) { 
    e.printStackTrace(); 
} catch (SAXException e) { 
    e.printStackTrace(); 
} 

doc.getDocumentElement().normalize(); 

NodeList parentNodes = doc.getElementsByTagName("Parent"); 

for (int i = 0; i < parentNodes.getLength(); i++){ 
    Node itemNode = parentNodes.item(i); 

    if (itemNode.getNodeType() == Node.ELEMENT_NODE){ 
     Element parentElement = (Element) itemNode; 

     NodeList childNodes = ?????? 
    } 
} 

我的XML文件:如何在android中獲取xml的子元素?

<Blah> 
    <Parent> 
     <Child> 
     ... 
     </Child> 
    </Parent> 
</Blah> 

我怎樣才能得到父母的子元素?教程中說NodeList childNodes = (parentElement).getElementsByTagName("Child");但是這對我沒有意義。

看起來我的文章主要是代碼;但我不知道要添加什麼

回答

0

教程是正確的。這是你如何得到它:

NodeList childNodes = (parentElement).getElementsByTagName("Child"); 

Element childElement=(Element)childNodes.item[0]; 

在情況下,有多個<child>節點,可以通過迭代

+0

但它不起作用,它說:方法getElementsByTagName(String)是未定義類型元素。 – nomnom

+0

你可以發佈完整的源代碼,方法是:http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/Element.html#getElementsByTagName(java.lang.String) –

+0

我發現了錯誤,導入了錯誤的類。現在它可以工作。非常感謝你。但parentElement周圍的括號仍然讓我困惑...... – nomnom

0

這樣你可以得到一個XML的子元素的android

環你可以寫一個xsl

<xsl:template match="/"> 
    <xsl:for-each select="section"> 
    <xsl:value-of select="concat('link ',[email protected], ' from ',@name,' is ',[email protected])"><xsl:value-of> 
    </xsl:for-each> 
</xsl:template> 
run the xsl on your xml, the output will be link 1 from section1 is ImageLink 1 .. link 4 from section2 is ImageLink 2