如何在c#中解析下面的xml字符串

时间:2013-01-18 10:44:57

标签: c# .net xml xml-parsing xml-serialization

我在一个字符串变量中有以下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解析的新手。

2 个答案:

答案 0 :(得分:1)

您可以通过System.Xml命名空间类反序列化该字符串(假设您修复了各种语法错误),尤其是XmlDocument,例如Load method。要访问名称空间(a中的a:Oregions,这是名称空间),您需要XmlNamespaceManager。然后,您将使用管理器注册命名空间(它们必须在某处定义),并在查询XmlDocument时使用它。

答案 1 :(得分:1)

使用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);