首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于android的Soap XMl解析

基于android的Soap XMl解析
EN

Stack Overflow用户
提问于 2014-06-26 05:07:51
回答 1查看 162关注 0票数 0

我得到了这样一个XML

代码语言:javascript
复制
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:authenticateResponse xmlns:ns2="http://auth.mobility.kra.kuali.polus.com/"     xmlns:ns3="http://rice.kuali.org/kim/v2_0">
<Principal>
<ns3:principalId>10000000049</ns3:principalId>
<ns3:principalName>shields</ns3:principalName>
<ns3:entityId>10048</ns3:entityId>
<ns3:active>true</ns3:active>
<ns3:versionNumber>1</ns3:versionNumber>
<ns3:objectId>F07352DB67502CF0E040007F0100035A</ns3:objectId>
</Principal>
</ns2:authenticateResponse>
</soap:Body>
</soap:Envelope>

如何在android中解析这种xml。

我试过这样做,但不起作用

代码语言:javascript
复制
XMLParser parser = new XMLParser();
    Document doc = parser.getDomElement(xml); // getting DOM element

    NodeList nl = doc.getElementsByTagName("soap:Body");

    // looping through all item nodes <item>
    for (int i = 0; i < nl.getLength(); i++) 
    {

    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-26 05:18:48

试试这个..。

代码语言:javascript
复制
InputStream stream = new ByteArrayInputStream(xmlstring.getBytes("UTF-8"));
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(stream);

doc.getDocumentElement().normalize();

NodeList nodeList = doc.getElementsByTagName("Principal");

for (int i = 0; i < nodeList.getLength(); i++) {

    Node node = nodeList.item(i);       

    Element fstElmnt = (Element) node;
    NodeList nameList = fstElmnt.getElementsByTagName("ns3:principalId");
    Element nameElement = (Element) nameList.item(0);
    nameList = nameElement.getChildNodes();

    System.out.println("ns3:principalId : "+(((Node) nameList.item(0)).getNodeValue()));
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24422768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档