簡體   English   中英

解析此 XML C# 中元素的最簡單方法

[英]Simplest way to parse the element in this XML C#

在 C# 中很新,所以試圖學習 xml 序列化。 我有一個如下的 xml 設置:

<Guy>
<Name>
    <Root> 
        <Entry>
            <Favorite> his favorite food is sushi </Favorite>
        </Entry>
    </Root>
</Name>
</Guy>

我需要選擇“最喜歡的”標簽並返回“他最喜歡的食物是壽司”。 在 C# 中解決這個問題的最簡單方法是什么? 可以使用 XDocument 和 LINQ 擴展嗎?

string xml = @"
<Guy>
<Name>
    <Root> 
        <Entry>
            <Favorite> his favorite food is sushi </Favorite>
        </Entry>
    </Root>
</Name>
</Guy>";
        
var doc = XDocument.Parse(xml);
Console.WriteLine(doc.Descendants("Favorite").First().Value);

// or 

foreach(var item in doc.Descendants("Favorite").Select(e => e.Value))
{
   Console.WriteLine(item);
}

https://dotnetfiddle.net/Iagop5

您可以使用 XPathNavigator 嘗試這種方法:

    public static string GetAttribute(string xml, string nodeName) {
      StringReader stringReader = new StringReader(xml);
      XPathDocument doc = new XPathDocument(stringReader);
      XPathNavigator xNav = doc.CreateNavigator();
      XPathNavigator node = xNav.SelectSingleNode("//" + nodeName);
      return node != null ? node.InnerXml : string.Empty;
  }

這是一個參考: https ://docs.microsoft.com/en-us/dotnet/api/system.xml.xpath.xpathnavigator.selectsinglenode?view=net-6.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM