2013-01-03 50 views
1

僅使用代碼Java我可以用這些行獲取根名稱。如何使用Android獲取xml中的根元素?

Element root = document.getDocumentElement(); 

,並得到與root.getNodeName()

但在Android的環境名字,我怎麼能得到例如,名稱爲「aluno」作爲根的名字嗎?

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<soap:Body> 
<ns1:autenticaAlunoResponse xmlns:ns1="http://xfire.codehaus.org/AlunoService"> 
<aluno xmlns="urn:bean.wsi.br"> 
<matricula xmlns="http://bean.wsi.br">61203475</matricula> 
<turma xmlns="http://bean.wsi.br"><codigo>2547</codigo> 
<nome>B</nome> 
</turma> 
</aluno> 
</ns1:autenticaAlunoResponse> 
</soap:Body> 
</soap:Envelope> 

更新(從下面留言複製):

我使用Ksoap2並嘗試使用SAX解析。

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
DocumentBuilder db; 
db = dbf.newDocumentBuilder(); 
InputSource is = new InputSource(); 
is.setCharacterStream(new StringReader(xml)); 
Document doc = db.parse(is); 

回答

1

在您的示例中,'aluno'作爲標籤名稱出現。如果您使用Jsoup,則可以通過標記找到元素,然後使用tagName方法檢索其名稱:

Document doc; 
Elements tagName; 
String name; 

try { 
    doc = Jsoup.connect(url).userAgent("Mozilla").get(); 
} catch (IOException ioe) { 
ioe.printStackTrace(); 
} 

doc.select("aluno"); 
name = tagName.tagName(); 
+0

我正在使用Ksoap2並嘗試使用SAX進行解析。 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db; db = dbf.newDocumentBuilder(); InputSource is = new InputSource(); is.setCharacterStream(new StringReader(xml)); Document doc = db.parse(is); –