C# XML 查找节点 添加数据
XML中 用C#代码winform的 如何查找到一个固定的节点 并在其中添加数据。
<Placemark>
<description>Front line</description>
<Name>sole</Name>
<styleUrl>#roadStyle</styleUrl>
<LineString>
<coordinates>
114.0456,22.324
</coordinates>
</LineString>
</Placemark>
如何根据Name的值找到这个Placemark
让后插入数据到
coordinates节点中呢。
[解决办法]
XmlElement Chid_Elent = Doc.DocumentElement; //得到XML的根节点
if (Chid_Elent.ChildNodes.Count > 0)//如果根节点下有子节点
{
foreach (XmlElement Elent in Chid_Elent.ChildNodes)//循环获取节点值
{
value=Elent.InnerText;//得到值
Elent.InnerText=vaue; //或者赋值 value为外部变量
}
}
最后save(路径)
[解决办法]
上面是针对每个子节点, 你可以在循环中加个判断 if(Elent.Name==coordinates)
[解决办法]
http://blog.csdn.net/xiaotian_1987/article/details/5678929
[解决办法]
用TreeView显示Xml再对xml进行增删改查,,,
Treeview绑定xml
private void XmlOperation_Load(object sender, EventArgs e) { path = AppDomain.CurrentDomain.BaseDirectory + @"NameList.xml"; xml.Load(path);//加载xml文件 bindTvXml(); } /// <summary> /// 绑定TreeView /// </summary> private void bindTvXml() { for (int i = 0; i < xml.DocumentElement.ChildNodes.Count; i++) { XmlNode Xnode = xml.DocumentElement.ChildNodes[i]; TreeNode node = new TreeNode(); node.Text = Xnode.Attributes["name"].Value; node.Tag = Xnode; bindChildNode(node, Xnode);//绑定子节点 TvXml.Nodes.Add(node); TvXml.HideSelection = false; } } /// <summary> /// 递归绑定子节点 /// </summary> /// <param name="node"></param> /// <param name="xml"></param> private void bindChildNode(TreeNode node, XmlNode xml) { for (int i = 0; i < xml.ChildNodes.Count; i++) { TreeNode Childnode = new TreeNode(); XmlNode ChildXml = xml.ChildNodes[i]; Childnode.Text = ChildXml.Value; Childnode.Name = "1"; Childnode.Tag = xml.ChildNodes[i]; if (ChildXml.HasChildNodes) { if (ChildXml.ChildNodes[0].NodeType == XmlNodeType.Text) Childnode.Text = ChildXml.ChildNodes[0].InnerText; else bindChildNode(Childnode, ChildXml); } node.Nodes.Add(Childnode); } }
[解决办法]
XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(@"c:\test.xml"); XmlNode node = xmlDoc.SelectSingleNode(@"//Placemark/Name[text()='sole']"); node.ParentNode["LineString"]["coordinates"].InnerXml = "新值"; xmlDoc.Save(@"c:\test.xml");