0

我正在尝试删除文本框和我的 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>"
4

1 回答 1

0

varialbexnode已经指向URL元素。只需跳过第二个 xpath 查询:

string x = xnode.InnerText.ToString();

但这意味着您必须更新代码的删除部分,因为 xnode 不指向 MyFavourite元素

XmlNode favoriteNode = xnode.ParentNode;
favoriteNode.ParentNode.RemoveChild(favoriteNode);
于 2011-10-24T16:42:01.237 回答