亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#讀取XML的CDATA節(jié)點(diǎn)內(nèi)容實(shí)例詳解

 更新時間:2019年09月03日 15:52:20   作者:需要充電  
在本篇文章里小編給大家整理了關(guān)于C# 讀取XML的CDATA節(jié)點(diǎn)內(nèi)容的相關(guān)知識點(diǎn)內(nèi)容,有需要的朋友們參考學(xué)習(xí)下。

首先看實(shí)例代碼:

昨天讀取了以下XML, 之前沒有讀取過類似的格式,用一種比較笨的方法讀取的,記錄下
<?xml version="1.0"?>
<response>
<srvver>1.0</srvver>
<srvcode>000</srvcode>
<payload>
<param type="XML" key="data">
<![CDATA[
<Response>
 <Execution>
  <Status code="0" sql_code="0" description="執(zhí)行成功!"/>
 </Execution>
 <ResponseContent>
  <Parameter/>
  <Document>
   <RecordSet id="1">
    <Master name="M" node_id="1">
     <Record>
      <Field name="MTRL_ID" value="51722500H031"/>
      <Field name="IS_MAIN" value="Y"/>
      <Field name="MAIN_ID" value="51722500H031"/>
      <Field name="DOSAGE" value="1.0"/>
      <Field name="NN_QTY" value="1000.0"/>
      <Field name="TN_QTY" value="1000.0"/>
      <Field name="SEQ" value="70.0"/>
      <Field name="POINT_STR" value=""/>
     </Record>
    </Master>
   </RecordSet>
   <RecordSet id="2">
    <Master name="M" node_id="2">
     <Record>
      <Field name="MTRL_ID" value="51820590H001"/>
      <Field name="IS_MAIN" value="N"/>
      <Field name="MAIN_ID" value="51820590H001"/>
      <Field name="DOSAGE" value="1.0"/>
      <Field name="NN_QTY" value="1000.0"/>
      <Field name="TN_QTY" value="500.0"/>
      <Field name="SEQ" value="30.0"/>
      <Field name="POINT_STR" value=""/>
     </Record>
    </Master>
   </RecordSet>
   <RecordSet id="3">
    <Master name="M" node_id="3">
     <Record>
      <Field name="MTRL_ID" value="51820710H002"/>
      <Field name="IS_MAIN" value="N"/>
      <Field name="MAIN_ID" value="51820510H002"/>
      <Field name="DOSAGE" value="0.0"/>
      <Field name="NN_QTY" value="0.0"/>
      <Field name="TN_QTY" value="1000.0"/>
      <Field name="SEQ" value="20.0"/>
      <Field name="POINT_STR" value=""/>
     </Record>
    </Master>
   </RecordSet>  
  </Document>
 </ResponseContent>
</Response>
]]>
</param>
</payload>
</response>

以下是讀取xml節(jié)點(diǎn)的過程

我的目的是想要讀取CDATA里面的 <RecordSet></RecordSet> 包裹的數(shù)據(jù)

1.我先建立了一個類

public class ReadXml
  {
    public string RecordSet;
    public string MTRL_ID;
    public string IS_MAIN;
    public string MAIN_ID;
    public string DOSAGE;
    public string NN_QTY;
    public string TN_QTY;
    public string SEQ;
    public string POINT_STR;
  }

2. 接著我把CDATA里面的內(nèi)容提出來

XmlDocument doc = new XmlDocument();
      doc.LoadXml(strFile); var cdata = (XmlCDataSection)doc.SelectSingleNode("/response/payload/param/text()");

3. 然后用XElement的Linq方法找到 RecordSet 節(jié)點(diǎn)集合, 循環(huán)節(jié)點(diǎn)集合,賦值,以下是實(shí)現(xiàn)代碼:

XElement xe = XElement.Parse(cdata.InnerText); 
 IEnumerable<XElement> elements = from ele in xe.Elements("ResponseContent").Elements("Document").Elements("RecordSet") select ele;    
      List<ReadXml> xmlNodeList = new List<ReadXml>();
      foreach (var ele in elements)
      {
        ReadXml xmlNode= new ReadXml();
        model.RecordSet = ele.Attribute("id").Value;

        var subeles = ele.Elements("Master").Elements("Record").Elements("Field");
        foreach (var item in subeles)
        {
          if (item.Attribute("name").Value == "MTRL_ID")
          {
            xmlNode.MTRL_ID = item.Attribute("name").NextAttribute.Value;
          }
          if (item.Attribute("name").Value == "IS_MAIN")
          {
            xmlNode.IS_MAIN = item.Attribute("name").NextAttribute.Value;
          }
          if (item.Attribute("name").Value == "MAIN_ID")
          {
            xmlNode.MAIN_ID = item.Attribute("name").NextAttribute.Value;
          }
          if (item.Attribute("name").Value == "DOSAGE")
          {
            xmlNode.DOSAGE = item.Attribute("name").NextAttribute.Value;
          }
          if (item.Attribute("name").Value == "NN_QTY")
          {
            xmlNode.NN_QTY = item.Attribute("name").NextAttribute.Value;
          }
          if (item.Attribute("name").Value == "TN_QTY")
          {
            xmlNode.TN_QTY = item.Attribute("name").NextAttribute.Value;
          }
          if (item.Attribute("name").Value == "SEQ")
          {
            xmlNode.SEQ = item.Attribute("name").NextAttribute.Value;
          }
          if (item.Attribute("name").Value == "POINT_STR")
          {
            xmlNode.POINT_STR=item.Attribute("name").NextAttribute.Value;
          }          
        }
        xmlNodeList.Add(xmlNode);
      }

以上就是本次介紹的全部知識點(diǎn)內(nèi)容,感謝大家的閱讀和對腳本之家的支持。

相關(guān)文章

  • 詳解C#中的接口屬性以及屬性訪問器的訪問限制

    詳解C#中的接口屬性以及屬性訪問器的訪問限制

    這篇文章主要介紹了詳解C#中的接口屬性以及屬性訪問器的訪問限制,文中講到了使用訪問器實(shí)現(xiàn)接口時添加訪問修飾符的問題,需要的朋友可以參考下
    2016-01-01
  • C#操作Access通用類實(shí)例

    C#操作Access通用類實(shí)例

    這篇文章主要介紹了C#操作Access通用類,實(shí)例分析了C#操作access的各種常見技巧,非常具有實(shí)用價值,需要的朋友可以參考下
    2015-06-06
  • C#利用正則判斷輸入是否為純數(shù)字、容器類

    C#利用正則判斷輸入是否為純數(shù)字、容器類

    這篇文章主要介紹了C#利用正則判斷輸入是否為純數(shù)字、容器類的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 簡單聊聊C#字符串構(gòu)建利器StringBuilder

    簡單聊聊C#字符串構(gòu)建利器StringBuilder

    因?yàn)镾tring類型代表不可變字符串,所以無法對當(dāng)前String類型實(shí)例進(jìn)行處理.所以FCL提供了System.Text.StringBuilder類型,下面這篇文章主要給大家介紹了關(guān)于C#字符串構(gòu)建利器StringBuilder的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 詳解 c# 克隆

    詳解 c# 克隆

    這篇文章主要介紹了詳解 c# 克隆的相關(guān)資料,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-11-11
  • Unity?使用tiledmap解析地圖的詳細(xì)過程

    Unity?使用tiledmap解析地圖的詳細(xì)過程

    這篇文章主要介紹了Unity?使用tiledmap解析地圖,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#8 的模式匹配實(shí)現(xiàn)

    C#8 的模式匹配實(shí)現(xiàn)

    這篇文章主要介紹了C#8 的模式匹配實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • C#中Socket與Unity相結(jié)合示例代碼

    C#中Socket與Unity相結(jié)合示例代碼

    這篇文章主要給大家介紹了關(guān)于C#中Socket與Unity相結(jié)合的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • C# OpenCvSharp實(shí)現(xiàn)去除字母后面的雜線

    C# OpenCvSharp實(shí)現(xiàn)去除字母后面的雜線

    這篇文章主要為大家詳細(xì)介紹了C#如何使用OpenCvSharp實(shí)現(xiàn)去除字母后面的雜線效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • C#定時關(guān)閉窗體實(shí)例

    C#定時關(guān)閉窗體實(shí)例

    這篇文章主要介紹了C#定時關(guān)閉窗體實(shí)例,在Windows桌面應(yīng)用程序開發(fā)中具有一定的實(shí)用價值,需要的朋友可以參考下
    2014-10-10

最新評論