2012-08-09 143 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解析繼續,有很多的例子。你可以用任何你喜歡的方式處理結果,顯示它們,返回數組中的元素和值等。