使用C#解析从服务返回的XML字符串

时间:2016-02-24 08:17:06

标签: c# xml parsing

我正在尝试解析从服务返回的以下XML字符串。

 DataReference.USZipSoapClient blah = new DataReference.USZipSoapClient("USZipSoap");
        var results = blah.GetInfoByCity(tbCityName.Text).OuterXml;

返回以下内容

<NewDataSet xmlns=""><Table><CITY>Marana</CITY><STATE>AZ</STATE><ZIP>85653</ZIP><AREA_CODE>520</AREA_CODE><TIME_ZONE>M</TIME_ZONE></Table></NewDataSet>

我没有运气解析数据:

我只想显示 City = Marana,State = AZ 等结果。

感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

为什么不使用XPath?

select *from #DD where DATEDIFF(D,ResponseBegin,ResponseEnd)>=2

答案 1 :(得分:0)

您可以创建序列化对象,然后序列化针对该对象获取的数据,我使用http://xmltocsharp.azurewebsites.net/生成以下xml对象:

[XmlRoot(ElementName="Table")]
public class Table {
    [XmlElement(ElementName="CITY")]
    public string CITY { get; set; }
    [XmlElement(ElementName="STATE")]
    public string STATE { get; set; }
    [XmlElement(ElementName="ZIP")]
    public string ZIP { get; set; }
    [XmlElement(ElementName="AREA_CODE")]
    public string AREA_CODE { get; set; }
    [XmlElement(ElementName="TIME_ZONE")]
    public string TIME_ZONE { get; set; }
}

[XmlRoot(ElementName="NewDataSet")]
public class NewDataSet {
    [XmlElement(ElementName="Table")]
    public Table Table { get; set; }
    [XmlAttribute(AttributeName="xmlns")]
    public string Xmlns { get; set; }
}

然后只需使用.net XML序列化程序将其强制转换为该对象并在代码中使用它。

答案 2 :(得分:0)

如果您只需要一个字符串进行目视检查,第一步可能是使用以下代码将XMl转换为JSON: http://techhasnoboundary.blogspot.no/2011/08/convert-xml-to-json-using-c.html

然后你可以继续删除大括号,用换行符替换逗号,用等号替换冒号。