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

Posted qhxblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
                    }
                }
            }

 

以上是关于xml解析多个结点方法(C#)的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 代码中解析(大)XML 的最佳方法是啥?

xml解析-jaxp修改结点

入坑写代码2——C#解析xml文件续集

xml解析-jaxp删除结点

xml解析-jaxp添加结点

C# 解析XML文件,使用XmlNode["..."]的方式能访问到此节点下的多个同名节点吗?