如何在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解析的新手。

如何在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);