如何在c#中从xml中获取电话号码

时间:2014-11-20 04:32:57

标签: c# xml

我正在进行以下xml响应

   <participantpasscode>92793519</participantpasscode>
    <dialInNumber>
        <phoneType>FREE</phoneType>
        <formattedNumber>0808 1005145</formattedNumber>
        <displayName>United Kingdom Freefone: 0808 1005145</displayName>
        <rawNumber>08081005145</rawNumber>
        <country>GBR</country>
    </dialInNumber>
    <dialInNumber>
        <phoneType>NATR</phoneType>
        <formattedNumber>0844 5610081</formattedNumber>
        <displayName>United Kingdom Primary: 0844 5610081</displayName>
        <rawNumber>08445610081</rawNumber>
        <country>GBR</country>
    </dialInNumber>
    <createDate>2014-11-19T15:09:09.815Z</createDate>

在电话类型上我可以找到这个拨号号码是收费号码或免费电话号码,例如,如果电话类型是“免费”,那么它是免费电话号码,否则这是收费号码。我想在c#中编写代码以从此xml响应中获取toll no和toll free no。

1 个答案:

答案 0 :(得分:2)

首先,您必须向xml添加根元素,否则此解决方案可能无效。如果你真的无法添加它,你可以使用XMLText阅读器并将一致性级别设置为片段来解决它。

var doc = new XmlDocument();
doc.LoadXml(xml);
var children = doc["root"].ChildNodes;
foreach (XmlNode c in children)
{
    if (c.Name == "dialInNumber")
    {
        var type = c["phoneType"].InnerText;
        var number = c["rawNumber"].InnerText;
        //Do stuff with type and number
    }
}

请注意,我已经添加了一个名为root的根元素,这就是为什么在第三行我进入该元素,否则doc.LoadXml方法会抛出异常。