XmlReader怎么读取指定节点的内容??(问-答)

Answer1

C# code
  
  
XmlDocument doc = new XmlDocument(); doc.Load("xxx.xml"); XmlNodeList nodeList; XmlNode root = doc.DocumentElement; nodeList=root.SelectNodes("//Re/Content"); //Change the price on the books. foreach (XmlNode content in nodeList) { ... }



(example)

XmlDocument doc=new XmlDocument();

doc.Load("... .xml");

XmlNodeList list=doc.GetElementsByTagName("Shot");

foreach(XmlNode node in list)

{

// do something...

}


Answer2


XmlReader 可实现不了你的要求。。。
XmlReader是只前进不后退且不能"跳跃"的,直到所有的节点被读完。
对于处理数据量巨大的Xml用XmlReader比较节省内存。

但对于你的要求,建议使用XPath即1楼的XmlDocument + SelectNodes
或者使用Linq2Xml


Answer3

非要用XmlReader的话可以这样:

C# code
    
    
while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Name == "你想处理的节点名") { ... break; } }


Answer4


reader 和 dom 是两套 xml 访问体系
using (XmlReader reader = XmlReader.Create(xmlFilePath))
{
while (tr.Read()){
if (tr.NodeType == XmlNodeType.Element){
for (int i = 0; i < tr.AttributeCount; i++){
richTextBox1.AppendText(tr.GetAttribute(i)+"\r\n");
}
}
}
XmlDocument doc = new XmlDocument();
doc.LoadXml("");
XmlNode temp = doc.SelectSingleNode("NewDataSet/Table/Name[@ID='J1']");
string s = temp.InnerText;
或LINQ TO XML获取值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值