2012-08-09 91 views
0

对于这个愚蠢的问题感到抱歉,但这是第三周在android 我创建了一个连接到MS SQL Server的应用程序,并使用.Net Web服务获取数据并阅读使用“REST”,它在Android的XML结果生成字符串包含以下XML数据:如何从Java中的.Net服务读取生成的XML

<DataSet xmlns="http://tempuri.org/"> 
    <xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="NewDataSet"> 
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"> 
     <xs:complexType> 
     <xs:choice minOccurs="0" maxOccurs="unbounded"> 
      <xs:element name="Members"> 
      <xs:complexType> 
       <xs:sequence> 
       <xs:element name="ID" type="xs:int" minOccurs="0"/> 
       <xs:element name="First_x0020_Name" type="xs:string" minOccurs="0"/> 
       <xs:element name="Last_x0020_Name" type="xs:string" minOccurs="0"/> 
       <xs:element name="Email_x0020_Address" type="xs:string" minOccurs="0"/> 
       </xs:sequence> 
      </xs:complexType> 
      </xs:element> 
     </xs:choice> 
     </xs:complexType> 
    </xs:element> 
    </xs:schema> 
    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> 
    <NewDataSet xmlns=""> 
     <Members diffgr:id="Members1" msdata:rowOrder="0"> 
     <ID>4</ID> 
     <First_x0020_Name>Jane</First_x0020_Name> 
     <Last_x0020_Name>Doe</Last_x0020_Name> 
     <Email_x0020_Address>[email protected]</Email_x0020_Address> 
     </Members> 
     <Members diffgr:id="Members2" msdata:rowOrder="1"> 
     <ID>3</ID> 
     <First_x0020_Name>Bob</First_x0020_Name> 
     <Last_x0020_Name>Jones</Last_x0020_Name> 
     <Email_x0020_Address>[email protected]</Email_x0020_Address> 
     </Members> 
    </NewDataSet> 
    </diffgr:diffgram> 
</DataSet> 

我的问题是如何得到这个字符串,并以漂亮的格式显示在XML中的数据?! 对不起,对于愚蠢的问题,但我已经做了很多研究,他们都调用文件或URI或URL

想到我得到的字符串和创建类有对象的成员和返回此对象的数组列表并在界面中显示,但我真不知道该怎么

回答

1

可以解析XML字符串,用一个StringReader:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
DocumentBuilder db = dbf.newDocumentBuilder(); 
InputSource is = new InputSource(); 
is.setCharacterStream(new StringReader(yourXMLString)); 

Document doc = db.parse(is); 
NodeList nodes = doc.getElementsByTagName("first-node"); 

然后用常规的XML解析继续,有很多的例子。你可以用任何你喜欢的方式处理结果,显示它们,返回数组中的元素和值等。