我正在进行以下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。
答案 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方法会抛出异常。