2017-05-29 38 views
-2

Android的解析有這個XML,我必須獲得一定的信息從,格式是:通過XML

<Tag1 
    name="something" 
    target="something"> 
    <param name="url">Some url</param> 
    <param name="tag">Some tag</param> 
</Tag1> 

事情是我必須首先檢查「有些網址」包含在參數名稱=「URL」是否存在(因爲一些xml條目可能不包含它),如果它,獲得Tag1名稱,有什麼建議?

編輯:

是不是在辦公室的時候,我張貼的問題,這裏是我目前使用的代碼(也能得到PARAM NAME =「URL」裏面的URL)

InputStream inputStream = getActivity().getAssets().open("some_xml.xml"); 
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder builder = builderFactory.newDocumentBuilder(); 
Document document = builder.parse(inputStream); 
Element element = document.getDocumentElement(); 
element.normalize(); 
NodeList nodeList = document.getElementsByTagName("Tag1"); 
for (int i = 0; i < nodeList.getLength(); i++) { 
    Node node = nodeList.item(i); 
    if (node.getNodeType() == Node.ELEMENT_NODE) { 
     Element element2 = (Element) node; 
     if (element2.getElementsByTagName("param") != null){ 
      NodeList innerNodes = element2.getElementsByTagName("param"); 
      for (int j = 0; j < innerNodes.getLength(); j++){ 
       Element element3 = (Element) innerNodes.item(j); 
       Log.d("XMLNode", element3.getNodeName()); 
       Node child = element3.getFirstChild(); 
       if (child instanceof CharacterData) { 
        CharacterData characterData = (CharacterData) child; 
        Log.d("XMLURL", characterData.getData()); 
       } 
      } 
     } 
    } 
} 

現在的問題是,當xml條目有param name =「url」和param name =「tag」時,我會同時返回URL和Tag,並且只需要捕獲URL(因爲有時候param name =「tag」是高於param name =「url」),我試過使用

if (element3.getAttribute("Url") != null 

指定它應該只捕獲url,但顯然它不會做任何事情,因爲它通過param name =「tag」比較。對此有何建議?提前致謝。

+0

你到目前爲止嘗試過什麼? – Selvin

+0

歡迎來到StackOverflow!你的問題非常含糊,並沒有顯示你到目前爲止嘗試過的代碼。看看[this](https://stackoverflow.com/help/how-to-ask)鏈接,瞭解如何提出更好的幫助問題 –

回答