-6

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

4

3 回答 3

1

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

于 2013-01-18T10:48:09.320 回答
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);
于 2013-01-18T10:51:15.913 回答
0
XmlDocument document = new XmlDocument();
document.Load(filePath);

foreach (XmlNode node in document.GetElementsByTagName("a:regionCode"))
    Console.WriteLine(node.InnerText);
于 2013-01-18T11:09:04.833 回答