首页 > 解决方案 > XML到c#字符串数组

问题描述

我有一个这样的xml

<?xml version="1.0" encoding="UTF-8"?>
<case>
   <e>
      <Time>05-08-2018 11:46:19</Time>
      <Number null="true"/>
      <code1 null="true"/>
      <code2>27341</code2>
      <code3>27341</code3>
   </e>
   <e>
      <Time>05-07-2018 12:11:19</Time>
      <Number>WC1110</Number>
      <code1>50121</code1>
      <code2>54091</code2>
      <code3>14880</code3>
   </e>
</case>

我想将标签名称和值都放入 string[] 结果中,这样

result[0] = "Time,05-08-2018 11:46:19";
result[1] = "Number,";
result[2] = "code1,";
result[3] = "code2,27341";
result[4] = "code3,27341";

result[5] = "Time,05-07-2018 12:11:19";
result[6] = "Number,WC1110";
result[7] = "code1,50121";
result[8] = "code2,54091";
result[9] = "code3,14880";

我尝试了以下代码,没有指定标签名称(动态),它只获取非空值但无法获取标签名称。

XDocument doc = XDocument.Parse(finalResult);
var rows = from row in doc.Root.Elements("case") select row;
var result = rows.SelectMany(o => o.Elements())
            .OrderBy(o => o.Name.LocalName)
            .Select(o => (string)o).ToArray();

谢谢!

标签: xml

解决方案


我使用 Paste Special -> Paste XML As Class 方法生成类并使用生成的方法获取值


推荐阅读