xml解析多个结点方法(C#)

解析多个结点的XML文件,格式如下:

<?xml version="1.0" encoding="utf-8"?>

<response>
  <flag>success</flag>
  <code>1</code>
  <message>成功单数:1 失败单数:0</message>
  <items>
    <item>
      <wareCode>ABC</wareCode>
      <itemCode>1000100</itemCode>
      <itemId>11111236</itemId>
      <inventoryType>ZP</inventoryType>
      <quantity>235</quantity>
      <lockQuantity>0</lockQuantity>
    </item>
  </items>
</response>

解析报文代码:

先取出response中的结点进行遍历,然后再取出item中的结点遍历。

var strResponse = from itemResponse in xDoc.Descendants("response")
                              select itemResponse;
        
            foreach (var items in strResponse)
            {
                string status = items.Element("flag").Value;

                if (status == "success")
                {
                    var itemResponse = from itemQuantity in xDoc.Descendants("item")
                                       select itemQuantity;

                    foreach (var item in itemResponse)
                    {
                        obj.PRODUCT_UPC = item.Element("itemCode").Value;
                        obj.PRODUCT_KD_PRODCODE = item.Element("itemId").Value;

                        obj.QUANTITY = Convert.ToInt64(item.Element("quantity").Value);
                        obj.PRODUCT_ID = prod_kd.PRODUCT_ID;
                        obj.LOCKQUANTITY = Convert.ToInt64(item.Element("lockQuantity").Value);
                        obj.PRODUCT_CODE = prod_kd.PRODUCT_CODE;
                        obj.PRODUCT_NAME = prod_kd.PRODUCT_NAME;
                    }
                }
            }

原文地址:https://www.cnblogs.com/qhxblog/p/8523806.html

时间: 2024-08-30 13:18:49

xml解析多个结点方法(C#)的相关文章

PHP中的XML解析的5种方法

[前言]不管是桌面软件开发,还是WEB应用,XML无处不在!然而在平时的工作中,仅仅是使用一些已经封装好的类对XML对于处理,包括生成,解析等.假期有空,于是将PHP中的几种XML解析方法总结如下: 以解析Google API 接口提供的天气情况为例,我们取今天的天气及气温.API地址:http://www.google.com/ig/api?weather=shenzhen [XML文件内容] <?xml version="1.0"?> <xml_api_reply

xml解析-jaxp添加结点

jaxp添加结点 eg: //在第一个下面添加nv / 1.创建解析器工厂 * 2.根据解析器工厂创建解析器 * 3.解析xml返回document * * 4.得到第一个p1 * -得到所有p1使用item方法得到第一个p1 * * 5.创建sex标签 createElement * 6.创建文本 createTextNode * 7.把文本添加到sex下面appendChild方法 * 8.把sex添加到第一个p1的下面 * * 9.回写xml * */ private static voi

xml解析-jaxp修改结点

jaxp修改结点 / 修改第一个p1下面的sex内容是nan * 1.创建解析器工厂 * 2.根据解析器工厂创建解析器 * 3.解析xml返回document * 4.得到sex item方法 * 5.修改sex里面的值 setTextContent方法 * * 6.回写xml * */ private static void changeNode() throws ParserConfigurationException, SAXException, IOException, Transfor

xml解析-jaxp删除结点

jaxp删除结点 / 删除sex结点 * 1.创建解析器工厂 * 2.根据解析器工厂创建解析器 * 3.解析xml返回document * * 4.得到sex结点 * 5.得到sex的父节点 getPatentNode * 6.删除sex removeChild方法 * * 7.回写xml * */ private static void removeNode() throws ParserConfigurationException, SAXException, IOException, Tr

XML解析的几种方法

第一种方法系统自带的解析方法(NSXMLParser) //1.指定XML文件 NSString *path=[[NSBundle mainBundle] pathForResource:@"person" ofType:@"xml"]; //转换成data类型对象 NSData *data=[NSData dataWithContentsOfFile:path]; //2.为parser指定初始值 NSXMLParser *parser=[[NSXMLParser

Java中Xml解析(四种方法)

1.DOM,Document Object Model,基于DOM的XML分析器将XML文档转换成一个对象模型的集合(DOC树),通过对此模型操作实现对XML文档数据的操作,可以在任何时候对XML文档的任何一部分数据进行访问. DOC强制使用树模型来访问XML文档中信息 很灵活,当XML文档较大时对内存需求比较高,而且对结构复杂的DOC树的遍历也很耗时,对机器要求比较高. // step 1: 获得dom解析器工厂(工作的作用是用于创建具体的解析器) DocumentBuilderFactory

XML解析的四种方法 建议使用demo4j解析 测试可以用

https://www.cnblogs.com/longqingyang/p/5577937.html 4.DOM4J解析  特征: 1.JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能. 2.它使用接口和抽象基本类方法. 3.具有性能优异.灵活性好.功能强大和极端易用的特点. 4.是一个开放源码的文件 以下是解析代码: public class DOM4JTest { private static ArrayList<Book> bookList = new ArrayLis

xml解析-jaxp查询结点

jaxp查询结点 eg://获取name的值 // person.xml <?xml version="1.0" encoding="UTF-8"?> <person> <p1> <name>zhangsan</name> <age>20</age> </p1> <p1> <name>lisi</name> <age>30&

rapidxml读取包含中文路径的xml解析错误的解决方法

from http://blog.csdn.net/qinwei4072880/article/details/38865179 1.rapidxml不支持中文路径. 2.rapidxml不支持Unicode xml必须为utf-8编码. 解决方法: #ifdef _UNICODE setlocale(LC_ALL, "Chinese-simplified"); // 设置中文环境USES_CONVERSION;file<> doc(W2A(lpszXml)); setlo