簡體   English   中英

從具有屬性的XML元素中提取文本

[英]Extracting text from XML Element with attributes

我有一個像這樣的xml文件:

<root>
<image size = "small">www.linktosmallimage.jpg</image>
<image size = "large">www.linktolargeimage.jpg</image>
</root>

我以這種方式提取第一個鏈接:

foreach (XmlElement x in xmlSource.SelectNodes("/root"))
            {
             string s = x.SelectSingleNode("image").InnerText;
            }

問題是:如何獲得第二個鏈接? (大圖的鏈接,因為這是我唯一需要的)?

先感謝您。

string s;
foreach(XmlElement x in xmlSource.SelectNodes("/root/image"))
{
  s = x.InnerText;
}

如果您始終想要最后一個。
或者你可以這樣做:

        XmlNode y = xmlSource.SelectSingleNode("/root/image[@size=\"large\"]");
        string s = y.InnerText;

在這種情況下,元素的順序無關緊要,假設只有一個這樣的元素,您將始終獲得屬性size = large的元素。 如果假設成立,這是更好的方法。 這是一些不錯的XPath示例

如果您不信任該訂單,而要使用size屬性,請執行以下操作:

x.SelectSingleNode("image[@size='large']") 

x.SelectSingleNode("image[2]")

奇怪的是,XPath數組從1而不是[0]開始。

有關XPath的大量信息,請訪問: http : //www.w3schools.com/xpath/default.asp

順便說一句,您應該研究System.Xml.Linq -語法比較笨重,但是更健壯。

暫無
暫無

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

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