首页 新闻 会员 周边

XmlTextReader如何读取xml节点属性

0
悬赏园豆:100 [已解决问题] 解决于 2010-10-20 20:14

xml文件格式如下:

<?xml version="1.0" encoding="UTF-8" ?>
<Product type="15" total="35">
   <type>
     <T gid="1" sum="100" />
      <T gid="2" sum="200" />
      <T gid="3" sum="100" />
   </type>
   <Mobile>
      <G gn="诺基亚"  pr="1800"  sum="100" />
      <G gn="摩托罗拉"  pr="1700"  sum="200" />
      <G gn="三星"  pr="1600"  sum="300" />
      <G gn="飞利浦"  pr="1750"  sum="90" />
   </Mobile>
</Product>

//-----------------------------------

我需要读取Product节点的type(15)  total(35)值 以及 Mobile节点下的子节点G里面的属性gnprsum的值.

最好把type节点下的T 属性也读取出来

 

XmlTextReader xml = new XmlTextReader(xmlfile);
while (xml.Read())
{

      这里如何写代码?
      textBox1 .AppendText();
//将属性值分行输出至textBox1,格式为:商品:诺基亚 - 价钱:1800 - 数量:100

     }

 

 

 

 

 


Kabayashi的主页 Kabayashi | 初学一级 | 园豆:128
提问于:2010-10-16 17:05
< >
分享
最佳答案
0
class MyXMLTextReader
{
static void Main(string[] args)
{
XmlTextReader xml
= new XmlTextReader(@"Product.xml");
xml.WhitespaceHandling
= WhitespaceHandling.None;

while (xml.Read())
{
if (xml.NodeType == XmlNodeType.Element)
{
if (xml.Name == "Product")
ReadTypeAndTotal(xml);
else if (xml.Name == "Mobile")
ReadG(xml);
}
}

Console.ReadKey(
true);
}

// 读取Product节点的type(15) total(35)值
private static void ReadTypeAndTotal(XmlTextReader xml)
{
Console.Write(
"Product节点的type: ");
Console.WriteLine(xml.GetAttribute(
"type"));
Console.Write(
"Product节点的total: ");
Console.WriteLine(xml.GetAttribute(
"total"));
}

// Mobile节点下的子节点G里面的属性gn、pr、sum的值
private static void ReadG(XmlTextReader xml)
{
Console.WriteLine();
while (xml.Read())
{
if (xml.NodeType == XmlNodeType.Element)
{
if (xml.Name != "G")
break;

Console.Write(
"商品:");
Console.Write(xml.GetAttribute(
"gn"));
Console.Write(
" - ");
Console.Write(
"价钱:");
Console.Write(xml.GetAttribute(
"pr"));
Console.Write(
" - ");
Console.Write(
"数量:");
Console.WriteLine(xml.GetAttribute(
"sum"));
}
}
}
}

 

Product.xml就是你给的XML文件。

收获园豆:95
wang_yb | 老鸟四级 |园豆:4891 | 2010-10-18 15:44
测试通过!结贴! 谢谢您的解答!
Kabayashi | 园豆:128 (初学一级) | 2010-10-20 20:14
其他回答(3)
0

参考下官方资料:

使用 XmlReader 类

收获园豆:5
HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-10-16 18:52
0

使用xml path查找一个node,而后再访问相关节点属性。

Astar | 园豆:40805 (高人七级) | 2010-10-16 21:13
0

linq to xml 很好解决

五香瓜子 | 园豆:450 (菜鸟二级) | 2010-10-17 15:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册