如何在c#中解析下面的xml字符串
本文关键字:xml 字符串 | 更新日期: 2023-09-27 17:54:04
我把下面的xml字符串放在一个字符串变量中。
string xmlString = "<a:ORegions>
<a:ID>1</a:ID>
<a:regionCode>US</a:regionCode>
</a:ORegions>
<a:ORegions>
<a:ID>2</a:ID>
<a:regionCode>CANADA</a:regionCode>
</a:ORegions>
<a:ORegions>
<a:ID>3</a:ID>
<a:regionCode>ASIA</a:regionCode>
</a:ORegions>
现在我想访问regionCode值,即US, CANADA, ASIA
我如何使用c#做到这一点。我是xml解析的新手。
可以通过System.Xml
命名空间类(特别是XmlDocument
)反序列化该字符串(假设您修复了各种语法错误),例如使用其Load
方法。要访问名称空间(a:Oregions
中的a
,这是一个名称空间),您需要一个XmlNamespaceManager
。然后向管理器注册名称空间(它们必须在某处定义),并在查询XmlDocument
时使用它。
使用LinqToXml
var doc = XDocument.Parse(xmlString);
你可以访问元素、值和属性:
XNamespace xmlNamespace = "a";
//e.g. Retrieve's a list of regioncodes...
var ids = doc.Elements(xmlNamespace + "ORegions")
.Select(r => r.Element("regionCode").Value);
XmlDocument document = new XmlDocument();
document.Load(filePath);
foreach (XmlNode node in document.GetElementsByTagName("a:regionCode"))
Console.WriteLine(node.InnerText);