簡體   English   中英

Csharp XmlNode選擇單節點錯誤

[英]Csharp XmlNode select single node error

我正在嘗試刪除文本框和Xml文件中值之間特定匹配的元素。 這是我的代碼,但出現錯誤:

string x = xnode.SelectSingleNode("Url").InnerText.ToString();

       XmlDocument favourites = new XmlDocument();
        favourites.Load("Favourites.xml");


        foreach (XmlNode xnode in favourites.SelectNodes("Favourite/MyFavourite/Url"))
        {

            string x = xnode.SelectSingleNode("Url").InnerText.ToString();
            if (x == Url)
            {
                // xnode.ParentNode.ReplaceChild(newchild,oldChild);
                xnode.ParentNode.RemoveChild(xnode);

            }
        }

這是我的xml:

 "<?xml version="1.0" encoding="utf-8"?>
   <Favourite>
   <MyFavourite>
    <name>Haider</name>
    <Url>http://www.yahoo.com</Url>
  </MyFavourite>
  <MyFavourite>
    <name>Haider</name>
    <Url>http://www.gmail.com</Url>
  </MyFavourite>
  <MyFavourite>
    <name>Haider</name>
    <Url>http://www.naji.com</Url>
  </MyFavourite>
  <MyFavourite>
    <name>Haider</name>
    <Url>http://www.yahoo.com</Url>
  </MyFavourite>
  <MyFavourite>
    <name>Haider</name>
    <Url>http://www.yahoo.com</Url>
  </MyFavourite>
  <MyFavourite>
    <name>Haider</name>
    <Url>http://www.yahoo.com</Url>
  </MyFavourite>
</Favourite>"

varialbe xnode已經指向URL元素。 只需跳過第二個xpath查詢:

string x = xnode.InnerText.ToString();

但是,這意味着你需要更新你的代碼的刪除部分,因為xnode不指向MyFavourite元素:

XmlNode favoriteNode = xnode.ParentNode;
favoriteNode.ParentNode.RemoveChild(favoriteNode);

暫無
暫無

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

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