C#如何读取xml文件里面节点里面的属性信息?

C#如何读取xml文件里面节点里面的属性信息?<columns><entryhidden="y"show="序号"field="#"/><entryhidden="n"s... C#如何读取xml文件里面节点里面的属性信息?
<columns>
<entry hidden="y" show="序号" field="#"/>
<entry hidden="n" show="姓名" field="name"/>
<entry hidden="n" show="总消费" field="allfei"/>
<entry hidden="n" show="总付款" field="allpay"/>
<entry hidden="n" show="余额" field="balance"/>
</columns>
比如我需要提取每一个entry的field和show的信息,该如何提取呢?hidden="n" show="姓名" field="name"不属于一个XmlNode的InnerText,他是什么属性呢?
展开
 我来答
雪漫山
2009-07-21 · TA获得超过234个赞
知道小有建树答主
回答量:365
采纳率:0%
帮助的人:153万
展开全部
using System.Xml;

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("这里是你的XML的地址"));
XmlNode cNodes = xmlDoc.SelectSingleNode("columns");
for (int i = 0; i < cNodes.ChildNodes.Count; i++)
{
XmlNode c = cNodes.ChildNodes[i];
c.Attributes["hidden"].Value; //这里就取到hidden的值
c.Attributes["show"].Value; // 这里就取到show的值
}

field="name" 这个也是节点属性啊。

大哥,代码很详细了吧,给分,给分!!!!!!!
BingXin_521
2009-07-21 · 超过52用户采纳过TA的回答
知道答主
回答量:364
采纳率:0%
帮助的人:173万
展开全部
这种有重复节点的XML最好用表结构来读取
方法:
DataSet ds = new DataSet();
ds.ReadXml(@"E:\XMLFile1.xml");//xml文件完整路径
对于你的这段xml文件,ds会读成3个表,configuration表(1行),user表(2行),upload表(1行);
例如要取 user id = 2时的name值,相当于取user表的第二行,name列的值,可以这样:
string name = ds.Tables["user"].Rows[1]["name"].ToString();
取saveToPath值:
ds.Table["upload"].Rows[0]["saveToPath"];

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fufeihappy/archive/2008/12/27/3623511.aspx
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
仆傅香祖水
2019-08-20 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.3万
采纳率:32%
帮助的人:963万
展开全部
我上午刚解决了这个问题,我把代码给你看看,不知道是不是你想要的。
我的xml数据很简单:
31.2
36.7
就是为了得到id=“sd”下的36.7的数据.
x下面是简单代码:
xmldocument
dom
=
new
xmldocument();实例化xmldocument
dom.loadxml(dt.rows[i]["data"].tostring());数据是存放在datatable里面的。其实这句就是加载xml语句。
//dom.save("d:\\temp.xml");
//
xdocument
xml
=
xdocument.load("d:\\temp.xml");这两句原来用了,上一句就是保存成xml文件,下一句是使用xdocument
加载xml文件,这时候xml变量就可以显示为xml字符串了。
var
node=
dom.selectsinglenode("device/item[@id='sd']");//读取指定的xml节点。
dt.rows[i]["data"]
=
node.innertext;//读取该节点的值。这时候终于得到了我想要的数据了。
//var
data=
from
x
in
xml.descendants("item")
where
x.attribute
("id").value
==
"sd"
select
x;这也是查询节点的语句,和上面注销的算式一组代码,但是这样读出来的还是
下的xml语句,不是我想读取的内部的值。xml语句和数据库还是有一定的相似之处的。可以使用select查询来读取节点内容。
友情链接:http://msdn.microsoft.com/zh-cn/library/system.xml.xmldocument.selectsinglenode.aspx这个是msdn的selectsinglenode的方法。有更详尽的解释。现在发现msdn真是越来越好用了啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kid83
2009-07-21 · TA获得超过2081个赞
知道大有可为答主
回答量:1818
采纳率:0%
帮助的人:1986万
展开全部
Attribute也算是节点,所以field是一个node,子节点.
其实节点也算是一个元素(element).
所以你可以获得node或者element方法去操作.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雪剑Rainy
推荐于2016-07-29 · TA获得超过227个赞
知道小有建树答主
回答量:225
采纳率:0%
帮助的人:274万
展开全部
Attributes属性
比如:XmlNode.Attributes["field"]
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式