如何在 C# 中从 XML 获取电话号码

本文关键字:XML 获取 电话号码 中从 | 更新日期: 2023-09-27 18:31:20

我有以下 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 响应中获取收费号和免费号。

如何在 C# 中从 XML 获取电话号码

首先,

您必须向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 的根元素,这就是为什么在第三行我进入该元素的原因,其他明智的是文档。LoadXml 方法将引发异常。