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

変数xnodeはすでにURL要素を指しています。2 番目の xpath クエリをスキップするだけです。

string x = xnode.InnerText.ToString();

ただし、これは、xnode がMyFavourite要素を指していないため、コードの削除部分を更新する必要があることを意味します。

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