2017-05-29 5 views
-2

gibt es diese XML, die ich habe bestimmte Informationen zu erhalten, aus, das Format ist:Android Parse durch xml

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

die Sache ist, ich muss zuerst überprüfen, ob „Einige url“ enthalten in param name = „url“ existiert (wie einige XML-Einträge es möglicherweise nicht einschließen) und, wenn es tut, Tag1 Name, irgendwelche Vorschläge erhalten?

Edit:

War im Büro nicht, wenn ich Frage gestellt, hier ist der Code, den ich zur Zeit bin mit (auch, konnte die URL innerhalb param name bekommen = "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()); 
       } 
      } 
     } 
    } 
} 

jetzt das Problem ist, dass wenn der XML-Eintrag Param name = "url" und param name = "tag" Ich bekomme sowohl die URL und Tag zurückgegeben und müssen nur die URL (wie manchmal param name = "tag" fangen ist über param name = "url"), versuchte ich mit

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

um anzugeben, dass es nur die URL abfangen soll, aber anscheinend tut es nichts, da es auf dem param name = "tag" Vergleich durchgeht. Irgendwelche Vorschläge dazu? Danke im Voraus.

+0

Was Sie bisher versucht hatte? – Selvin

+0

Willkommen bei StackOverflow! Ihre Frage ist ziemlich vage und zeigt nicht, welchen Code Sie bisher ausprobiert haben. Sehen Sie sich den Link [this] (https://stackoverflow.com/help/how-to-ask) an, um zu erfahren, wie Sie eine gute Frage stellen können, um weitere Hilfe zu erhalten –

Antwort