2013-05-30 75 views
0

我在Android的新的,我不知道哪個解析器是最好的這樣的傢伙,你能不能幫我分析這個XML文件如何解析這個XML代碼

<poem name="P01"> 
    <stanza name="P1S1"> 
     <Line name="P1S1L1"> 
      <word name="P1S1L1W1">Twinkle</word> 
      <word name="P1S1L1W2">twinkle</word> 
      <word name="P1S1L1W3">little</word> 
      <word name="P1S1L1W4">star</word> 
     </Line> 
     <Line name="P1S1L2"> 
      <word name="P1S1L2W1">How</word> 
      <word name="P1S1L2W2">I</word> 
      <word name="P1S1L2W3">wonder</word> 
      <word name="P1S1L2W4">what</word> 
      <word name="P1S1L2W5">you</word> 
      <word name="P1S1L2W6">are</word> 
     </Line> 

    </stanza> 

    </poem> 

我給編號或名稱以每標籤,我想閱讀標籤的文本/價值使用該名稱/ ID沒有標籤名稱 ,因爲如果我想閱讀文字奇蹟,所以有一個很多字標籤,所以我怎麼能讀取標籤的單個值/文本使用該名稱/ ID。 所以請給我一個關於這個 的建議對不起我的英文 Thanx提前

+0

使用XML解析。 – Riser

+0

什麼類型的解析器,我試圖檢索標籤的數據 – user2388396

回答

0

這很容易。您應該使用DOM解析器。

這是link

你也可以去SAX解析,但這很複雜。

+0

XML拉解析器對於這個xml很容易或複雜 – user2388396

+0

請給我拉解析器的示例 – user2388396

+0

XML拉解析器會讓這個簡單的xml文件頭疼。我不鼓勵你使用Pull解析器。無論如何,這裏是一個[XML拉鍊解析的鏈接](http://adf.ly/3103720/banner/http://rajeshvijayakumar.blogspot.in/2013/04/xml-pull-parser-example-in-android.html )。 –

0

使用此代碼:

private static void xmlParser() { 
    try { 
     String filepath = "yourfile.xml"; 
     DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); 
     Document doc = docBuilder.parse(filepath); 
     // Get the root element 
     Node min = doc.getElementsByTagName("poem").item(0); 
     NamedNodeMap attr = min.getAttributes(); 
        // get the value of the name= 
     Node nodeAttr = attr.getNamedItem("name"); 
        //if you want to change the value of the name use 
        nodeAttr.setTextContent("new name value"); 
        //if you want to get the value between >value< use 
        nodeAttr.getTextContent() 
     TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
     Transformer transformer = transformerFactory.newTransformer(); 
     DOMSource source = new DOMSource(doc); 
     StreamResult result = new StreamResult(new File(filepath)); 
     transformer.transform(source, result); 
    } catch (ParserConfigurationException e) { 
      e.printStackTrace(); 
    } 
    catch (IOException ioe) { 
      ioe.printStackTrace(); 
     } catch (SAXException sae) { 
      sae.printStackTrace(); 
     } catch (TransformerConfigurationException e) { 

      e.printStackTrace(); 
     } catch (TransformerException e) { 

      e.printStackTrace(); 
     } 
} 

只是套用上面的標籤其餘..