繁体   English   中英

使用C#从XML元素的所有实例获取文本

[英]Get text from all instances of XML element using C#

我需要解析无法预测结构的XML文件。 我需要用以下标记的每个实例的内部文本填充字符串数组,无论它们在树中的什么位置。

<SpecialCode>ABCD1234</SpecialCode>

有没有简单的方法可以使用C#完成此操作?

如果您的XML是字符串:

XDocument doc = XDocument.Parse("<SpecialCode>ABCD1234</SpecialCode>");
string[] specialCodes = doc.Descendants("SpecialCode").Select(n => n.Value).ToArray();

如果您的XML是文件:

XDocument doc = XDocument.Load("specialCodes.xml");
string[] specialCodes = doc.Descendants("SpecialCode").Select(n => n.Value).ToArray();

说明

XDocument是一个方便的类,可以轻松进行XML解析。 您需要在项目中添加对System.Xml.Linq程序集的引用才能使用它。

  • Descendents方法将获取XML文档的所有子级,这将照顾您未知的XML结构。
  • Select方法是LINQ方法,它使我们能够从每个节点中选择一个属性,在这种情况下,是Value
  • ToArray将IEnumerable结果从Select()为所需的结果。
XmlDocument doc = new XmlDocument();

doc.Load(FILENAME);

// IN CASE OF STRING, USE FOLLOWING
//doc.LoadXml(XAML_STRING);

XmlNodeList list = doc.DocumentElement.SelectNodes("//SpecialCode");

// prefic将从xml中获取所有SpecialCode标签。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM