0

抱歉这个愚蠢的问题,但这是在android中的第三周我创建了一个连接到MS SQL Server的应用程序并使用.Net Web服务获取数据并使用“REST”在Android中读取XML结果,它生成的字符串包含以下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>janedoe@yahoo.com</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>bob@yahoo.com</Email_x0020_Address>
      </Members>
    </NewDataSet>
  </diffgr:diffgram>
</DataSet>

我的问题是如何获取此字符串并以漂亮的格式显示 XML 中的数据?!再次抱歉这个愚蠢的问题,但我做了很多研究,他们都调用文件或 URI 或 URL

我的想法是获取字符串并创建具有成员对象的类并返回此对象的数组列表并将其显示在界面中,但我真的不知道如何

4

1 回答 1

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 解析,有很多例子。您可以以任何您喜欢的方式处理结果、显示它们、返回数组中的元素和值等。

于 2012-08-09T09:10:11.100 回答