从xml删除节点? [英] delete a node from xml?

查看:85
本文介绍了从xml删除节点?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

我有个问题.我有一个XML文件,例如:

< Group>
< 1>文字1</1>
< 1>文本2</1>
</Group>

我要删除< 1>其中元素是text1.

在此先感谢

hi guys,

i have a question. i have an xml file like:

<Group>
<1>Text1</1>
<1>text2</1>
</Group>

i want delete a <1> where element is text1 .

thanks in advance

推荐答案


检查此代码是否符合您的要求.

Hi
check this code for your requirement.

XmlTextReader reader = new XmlTextReader(Server.MapPath("~/SomeFiles") + "/" + "XMLFile4.xml");
reader.WhitespaceHandling = WhitespaceHandling.None;

XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(reader);
XmlNodeList xmlnodeli = xmldoc.SelectNodes("Group/1");
XmlNode  xmlnodeli1 = xmldoc.SelectSingleNode("Group");
XmlNode xn = null;
if (xmlnodeli.Count > 0)
{
      //you 've to check each and every node value if it has more than two nodes
    if (xmlnodeli[1].InnerText == "Test1")
    {
        xn = xmlnodeli[1];
    }
}
xmlnodeli1.RemoveChild(xn);
reader.Close();
xmldoc.Save(Server.MapPath("~/SomeFiles") + "/" + "XMLFile4change.xml");



希望您能理解我的所作所为.

所有最好的



I hope you understood What I did.

All the Best


您应该先检查Xml格式.我不确定XML标签中是否只能提供数字.我将为您提供XML和Delete节点的示例.

XML
You should check your Xml format first.I''m not sure in XML tag can give only number or not.I will give you sample of my XML and Delete node.

XML
<?xml version="1.0" encoding="utf-8"?>
<Group>
  <G1>Text1</G1>
  <G1>Text2</G1>
</Group>



示例C#代码



Sample C# code

XmlTextReader reader = new XmlTextReader(Server.MapPath("~/XMLFile") + "/" + "Test.xml");
 reader.WhitespaceHandling = WhitespaceHandling.None;

 XmlDocument xmldoc = new XmlDocument();
 xmldoc.Load(reader);
 XmlNodeList xmlnodelist = xmldoc.SelectNodes("Group/G1");
 XmlNode xmlnode = xmldoc.SelectSingleNode("Group");
 XmlNode xn = null;
 if (xmlnodelist.Count > 0)
 {
     //you ''ve to check each and every node value if it has more than two nodes
     for (int i = 0; i < xmlnodelist.Count; i++)
     {
         if (xmlnodelist[i].InnerText == "Text1")
         {
             xn = xmlnodelist[1];
         }
     }

 }
 if (xn != null)
 {
     xmlnode.RemoveChild(xn);
 }
 reader.Close();
 xmldoc.Save(Server.MapPath("~/XMLFile") + "/" + "Test.xml"");




您可以使用system.Xml.Linq在两行中执行相同的任务,如下所示:

Hi,

You can use system.Xml.Linq to perform same task in two lines as shown below:

var elements = XElement.Parse("<group><g1>Text1</g1><g1>Text2</g1><g1>Text3</g1></group>").Elements();

//OR
//var elements = XElement.Load("samplefilePath").Elements();

elements.Where(ele => ele.Value == "Text1").Remove();


这篇关于从xml删除节点?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆