如何在C#中读取xml?

时间:2017-01-31 22:11:33

标签: c# xml xmldocument

我需要一些帮助,从Web服务中读取一些XML。 我将XML加载到这样的XML文档中。

XmlDocument doc = new XmlDocument();
doc.LoadXml(responseString);

doc.InnerText显示此节点的文本及其所有子节点。这似乎是有效的,但它们都聚集在一起。我将如何获得first_name或last_name等个别元素。

我会假设像

foreach (XmlNode node in doc.ChildNodes)
            {
                MessageBox.Show(node["first_name"].Value);
            }

可以工作,但是node [“first_name”]。Value给我一个空引用异常错误。

我正在使用的XML看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="https://www.example.com/">
  <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="Table">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="client_id" type="xs:int" minOccurs="0" />
                <xs:element name="first_name" type="xs:string" minOccurs="0" />
                <xs:element name="last_name" type="xs:string" minOccurs="0" />
                <xs:element name="home_phone" 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="">
      <Table diffgr:id="Table1" msdata:rowOrder="0">
        <client_id>1002</client_id>
        <first_name>Sam</first_name>
        <last_name>Spade</last_name>
        <home_phone>5405555555</home_phone>
      </Table>
    </NewDataSet>
  </diffgr:diffgram>
</DataSet>

0 个答案:

没有答案