2

私は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#を使用しています。

4

3 に答える 3

3

使用する:

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()

于 2012-11-08T00:46:43.533 に答える
2
using (StringReader sr = new StringReader(xml_content))
{
    XDocument xdoc = XDocument.Load(sr);

    IList<string> values = xdoc.XPathSelectElements("ticket/comments/attachments/url").Select(e => e.Value).ToList();
}

または、コメントのユースケースに基づいて:

var doc = new XmlDocument();
doc.LoadXml(xml_content);
IList<string> values = doc.SelectNodes("ticket/comments/attachments/url")
    .Cast<XmlElement>().Select(e => e.InnerText).ToList();
于 2012-11-08T00:46:26.753 に答える
0

または、var values = xdoc.SelectSingleNode( "ticket / comments / attachments / url")。InnerXml;を使用できます。

于 2013-11-06T02:29:17.883 に答える