c# - 如何读取特定名称的所有 XML 节点并将它们放入数组(或列表)中?

标签 c# .net xml linq xpath

我有一个 XML:

<?xml version="1.0" encoding="UTF-8"?>
<ticket>
    <comments type="array">
         <comment> 
               <attachments type="array">
                     <attachment>
                          <url>I NEED WHATEVER IS IN HERE</url>
                     </attachment>
               </attachments>
         </comment>
         <comment>
               <attachments type="array">
                     <attachment>
                          <url>I NEED WHATEVER IS IN HERE</url>
                     </attachment>
               </attachments>
         <comment>
     </comments>
</ticket>

我如何获取 URL 标记内的内容并将其添加到 <List> ?我正在使用 C#。

最佳答案

用途:

var result = XDocument.Parse(inputXml)
    .DescendantNodes().OfType<XText>().Select(e => e.Value).ToList();

或者使用 XPath:

var result = ((IEnumerable)XDocument.Parse(input).XPathEvaluate("//text()"))
    .Cast<XText>().ToList();

要仅从 url 元素检索文本,请使用:

var result = XDocument.Parse(inputXml)
        .Descendants("url").Select(e => e.Value).ToList();

或者更改上面的XPath://url/text()

关于c# - 如何读取特定名称的所有 XML 节点并将它们放入数组(或列表)中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13280719/

相关文章:

c# - 查询特定exchange 2013文件夹EWS

c# - 应用程序不加载azure应用程序配置功能标志值,但加载配置值

android - 如何在 Android 中打开 .crt 文件?

c# - 如何在 C# 中进行径向集合查询?

c# - 已排序枚举的 N 路交集

.net - Windows Form应用程序在Visual Studio Code上?

.net - .NET在三个 namespace 中的声明

c# - 动态调用 DLL 中的方法

xml - 为 boto3 MTurk 构建 HTMLQuestion XML

java - 在 JAVA 中使用 SAX 解析器从 XML 文件中提取文本节点