从xml删除节点? [英] delete a node from xml?
本文介绍了从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屋!
查看全文