C# 如何从XML中按属性删除特定节点?
我是一名新手,在一些XML操作(如open和Delete)中苦苦挣扎。我已经完成了添加部分 Partys.xmlC# 如何从XML中按属性删除特定节点?,c#,.net,xml,C#,.net,Xml,我是一名新手,在一些XML操作(如open和Delete)中苦苦挣扎。我已经完成了添加部分 Partys.xml <?xml version="1.0" encoding="utf-8"?> <Partys> <Customers> <Customer CustomerID="1"> <PersonalName> <LastName>Baker</LastName>
<?xml version="1.0" encoding="utf-8"?>
<Partys>
<Customers>
<Customer CustomerID="1">
<PersonalName>
<LastName>Baker</LastName>
<FirstName>Eugene</FirstName>
</PersonalName>
<Citizenship>Africa</Citizenship>
</Customer>
<Customer CustomerID="2">
<PersonalName>
<LastName>Baker</LastName>
<FirstName>Eugene</FirstName>
</PersonalName>
<Citizenship>Africa</Citizenship>
</Customer>
</Customers>
</Partys>
面包师
尤金
非洲
面包师
尤金
非洲
问:我想打开CustomerID(属性)为1的节点DetailCustomer。这个的C代码是什么
Q:我想删除CustomerID(属性)为2的节点customer。这个的C代码是什么?您可以尝试以下方法:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("Parties.xml");
XmlNode t = xmlDoc.SelectSingleNode("/Partys/Customers/Customer[@CustomerID='2']");
t.ParentNode.RemoveChild(t);
xmlDoc.Save();
一旦你有了t,你可以用它做任何你想做的事情,包括在控制台中显示它(通过访问各种属性)
在这里,我们删除了节点并将其保存回文件,但您可以对XmlDocument执行任何操作。…您可以尝试以下操作:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("Parties.xml");
XmlNode t = xmlDoc.SelectSingleNode("/Partys/Customers/Customer[@CustomerID='2']");
t.ParentNode.RemoveChild(t);
xmlDoc.Save();
一旦你有了t,你可以用它做任何你想做的事情,包括在控制台中显示它(通过访问各种属性)
在这里,我们删除了节点并将其保存回文件,但是您可以对XmlDocument执行任何操作……什么是“
打开”
”操作?就像在可视化树状视图中,展开子节点?!?你可能会发现这个链接很有用:很抱歉说得含糊不清。通过Open,我试图在控制台中显示节点细节。谢谢。顺便说一句,没有“C#NET”这样的东西。该语言名为“C”。谢谢你,John,请更正。什么是“打开
”操作?就像在可视化树状视图中,展开子节点?!?你可能会发现这个链接很有用:很抱歉说得含糊不清。通过Open,我试图在控制台中显示节点细节。谢谢。顺便说一句,没有“C#NET”这样的东西。该语言被命名为“C *”。谢谢你,约翰-为了纠正。如果它奏效,请考虑支持并接受答案:-再一次,在SelectSinglenode中传递参数的正确方法是什么?int-ID;XmlNode t=xmlDoc。选择SingleNode(“/Partys/Customers/Customer[@CustomerID='2']”);如何发送“ID”而不是“2”?再次感谢。int ID=2;XmlNode customersNode=xDoc.SelectSingleNode(//Partys/Customers/Customer[@CustomerID='“+ID+”]);CustomerNode.ParentNode.RemoveChild(CustomerNode);xDoc.Save(@.\\Partys.xml”);它显示:对象引用未设置为对象的实例。有什么线索吗?如果它奏效了,请考虑一下投票并接受答案:-再一次,在SelectSinglenode中传递参数的正确方法是什么?int-ID;XmlNode t=xmlDoc。选择SingleNode(“/Partys/Customers/Customer[@CustomerID='2']”);如何发送“ID”而不是“2”?再次感谢。int ID=2;XmlNode customersNode=xDoc.SelectSingleNode(//Partys/Customers/Customer[@CustomerID='“+ID+”]);CustomerNode.ParentNode.RemoveChild(CustomerNode);xDoc.Save(@.\\Partys.xml”);它显示:对象引用未设置为对象的实例。有线索吗?