如何阅读特定​​名称的所有XML节点,并把它们放到一个数组(或列表)?数组、节点、并把、名称

2023-09-05 04:18:21 作者:三更明月照离人

我有一个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标记内,并把它添加到&LT;列表&gt; ?我使用C#。

推荐答案

使用:

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

而使用XPath:

Or using XPath:

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

要仅从网​​址元素的使用检索的文本:

To retrieve text only from url element use:

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

或改变以上的XPath: // URL /文()