读书人

C# XML 查找节点 添加数据,该怎么处理

发布时间: 2012-05-27 05:42:30 作者: rapoo

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

C# code
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);            }                   }
[解决办法]
C# code
        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"); 

读书人网 >C#

热点推荐