首页 新闻 会员 周边

XML的读取

0
悬赏园豆:30 [已解决问题] 解决于 2012-05-15 08:24

这是我的XML文件的内容

<?xml version="1.0" encoding="utf-8"?>
<Card>
<Value ID="cardValue">
<NorthValue>12 10 8 7 </NorthValue>
<EastValue>20 23 25 22 </EastValue>
<SouthValue>38 37 36 33 </SouthValue>
<West>47 48 51 50 </West>
</Value>
</Card>

 

我想读取里面的单个节点内容,例如读取<NorthValue>12 10 8 7</NorthValue>读取出来,只读取单个内容。如果在存储一次,然后我想根据一个标识来取得里面的值得。例如说,我读取第一次,然后就讲第一次里面<Value></Value>的所有内容读取。两个问题该怎么解决,谢谢了

C C#
Mr丶Lee的主页 Mr丶Lee | 初学一级 | 园豆:10
提问于:2012-05-09 01:22
< >
分享
最佳答案
0
 static void Main(string [] args) {
    XmlDocument inventory = new XmlDocument();
    inventory.Load("inventory.xml");

    XmlNodeList elements = inventory.SelectNodes("//inventory/items/item");
    foreach (XmlElement element in elements) {
        string productCode = element.GetAttribute("productCode");
        int quantitySold = Int32.Parse(element.GetAttribute("quantity"));

        Console.WriteLine(quantitySold);
        
        string xPathExpression = "//items/item[@productCode='" + productCode + "']";
        XmlElement inventoryItem = (XmlElement)inventory.SelectSingleNode(xPathExpression);
    
        int quantity = Int32.Parse(inventoryItem.GetAttribute("quantity"));
        quantity -= quantitySold;
        inventoryItem.SetAttribute("quantity",quantity.ToString());
    }
    inventory.Save("inventory.xml");
  }

读取指定节点用SelectNodes方法。网上很多的。很容易找到。

收获园豆:20
悟行 | 专家六级 |园豆:12559 | 2012-05-09 09:23
其他回答(1)
0

XPATH  用于在xml中查找和筛选的语法,楼上也给出了使用示例。

收获园豆:10
写代码的小2B | 园豆:4371 (老鸟四级) | 2012-05-09 10:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册