c# xPathDocument读取xml节点属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# xPathDocument读取xml节点属性相关的知识,希望对你有一定的参考价值。
请问下谁知道C# XPathDocument 怎么读取xml节点的属性?详细点最好是有个实例
参考技术A static void Main(string[] args)//创建实例
XmlDocument xml = new XmlDocument();
//读取XML文档
xml.Load("XMLFile1.xml");
//读取根节点
XmlNode channel = xml.DocumentElement;//对子节点进行循环
foreach (XmlNode node in channel.ChildNodes)
switch (node.Name)
case "title":
Console.WriteLine("标题:0",node.InnerText);
break;
case "description":
Console.WriteLine("描述:0", node.InnerText);
break;
case "link":
Console.WriteLine("链接:0", node.InnerText);
break;
case "item":
foreach (XmlNode childnode in node.ChildNodes)
//重复操作
补上XML文件: <?xml version="1.0" encoding="utf-8" ?>
<channel>
<title>新闻频道</title>
<description>新浪新闻频道</description>
<link> http://new.sina.com</link>
<item>
<title>欧文</title>
<link>连接</link>
<description>欧文是睡</description>
</item>
</channel> 参考技术B /根节点名/节点名[@节点属性名=节点属性值]/
例:
<xml>
<a name="123">asd</a>
<b name="321">dsa</b>
<b name="123">dsa</b>
</xml>
预取到节点b,name属性值为123的节点,可用如下XPath
/xml/b[@name=123]/
具体参考:
XPathDocument用法与详解
http://hi.baidu.com/dongbaoge/blog/item/82aabc0f7faa23eaab64573a.html
XPath语法与详解
http://www.w3school.com.cn/xpath/xpath_syntax.asp
C#在xml文件中指定节点插入节点和属性
<TableColumns>
<TableColumn id="MIEdIndex">
<Width>6.61471cm</Width>
</TableColumn>
<TableColumn id="IndexUnit">
在这里插入节点和属性
<Width>2.19578cm</Width>
</TableColumn>
<TableColumn id="MIEdQty">
<Width>2.88487cm</Width>
</TableColumn>
<TableColumn id="MIEdAoyQty">
<Width>2.85988cm</Width>
</TableColumn>
<TableColumn id="MIEdUpQty">
<Width>2.83488cm</Width>
</TableColumn>
<TableColumn id="MIEdUpAoyQty">
<Width>2.85988cm</Width>
</TableColumn>
</TableColumns>
插入节点后代码为这样,哪位大神帮帮忙
<TableColumns>
<TableColumn id="MIEdIndex">
<Width>6.61471cm</Width>
</TableColumn>
<TableColumn id="IndexUnit">
<Visibility>
<Hidden>true</Hidden>
</Visibility>
<Width>2.19578cm</Width>
</TableColumn>
<TableColumn id="MIEdQty">
<Width>2.88487cm</Width>
</TableColumn>
<TableColumn id="MIEdAoyQty">
<Width>2.85988cm</Width>
</TableColumn>
<TableColumn id="MIEdUpQty">
<Width>2.83488cm</Width>
</TableColumn>
<TableColumn id="MIEdUpAoyQty">
<Width>2.85988cm</Width>
</TableColumn>
</TableColumns>
string File = @"c:\\TableColumns.xml";
System.Xml.XmlDocument xmlDoc=new System.Xml.XmlDocument();
xmlDoc.Load(File);
System.Xml.XmlNode xn = xmlDoc.DocumentElement.SelectSingleNode("TableColumns/TableColumn[@id=\\"IndexUnit\\"]");//读取id=IndexUnit的TableColumn节点,在xml教材中的xPath章节专门介绍这种查询方法。
System.Xml.XmlElement vs=xmlDoc.CreateElement("Visibility");//创建新节点
System.Xml.XmlElement Hd = xmlDoc.CreateElement("Hidden");
Hd.InnerText = "true";
vs.AppendChild(Hd);//添加为子节点
xn.AppendChild(vs);
xmlDoc.Save(File);
追问
但是这个节点取不上啊,一调试显示为空,为什么呢
追答你把我测试的xml文本放到c:\\中试试,我是能通过的。有没有用<xml> </xml>标签把文本包起来?
急用,代码怎么实现呢,麻烦您了
追答我已经4年没写了,只是以前做过xml项目,全照参考书上写的
追问好吧,再想想办法把,主要是这节点里面有个id号呢,不知道怎么读取
以上是关于c# xPathDocument读取xml节点属性的主要内容,如果未能解决你的问题,请参考以下文章