无需手动解析文件,.Net
是否可以轻松将包含XML
的字符串转换为XmlElement
,datatable
,list
或者更易于管理的东西?
这是实际的字符串。此字符串当前存储在XmlNode
对象中(这是XmlNode.OuterXml
),但我不知道如何转换为我实际可以使用的内容:
<ni>
<nss>20150927</nss>
<gp>Addon</gp>
<ns>CounterBlah1</ns>
<ns>CounterBlah2</ns>
<ns>CounterSales</ns>
<ns>CounterBlah4</ns>
<ns>CounterBlah5</ns>
<ns>CounterBlah6</ns>
<nv>
<nad>Style=1,Rfu=1,Id=132</nad>
<r>0</r>
<r>15</r>
<r>8</r>
<r>3</r>
<r>2</r>
<r>2</r>
</nv>
<nv>
<nad>Style=1,Rfu=1,Id=433</nad>
<r>0</r>
<r>15</r>
<r>30</r>
<r>3</r>
<r>2</r>
<r>2</r>
</nv>
<nv>
<nad>Style=1,Rfu=1,Id=665</nad>
<r>0</r>
<r>15</r>
<r>90</r>
<r>3</r>
<r>2</r>
<r>2</r>
</nv>
</ni>
感谢。
答案 0 :(得分:0)
试试这个
string input = "<ni><nss>20150927</nss><gp>Addon</gp><ns>CounterBlah1</ns><ns>CounterBlah2</ns><ns>CounterSales</ns><ns>CounterBlah4</ns><ns>CounterBlah5</ns><ns>CounterBlah6</ns><nv><nad>Style=1,Rfu=1,Id=132</nad><r>0</r><r>15</r><r>8</r><r>3</r><r>2</r><r>2</r></nv><nv><nad>Style=1,Rfu=1,Id=433</nad><r>0</r><r>15</r><r>30</r><r>3</r><r>2</r><r>2</r></nv><nv><nad>Style=1,Rfu=1,Id=665</nad><r>0</r><r>15</r><r>90</r><r>3</r><r>2</r><r>2</r></nv></ni>";
StringReader reader = new StringReader(input);
DataSet ds = new DataSet();
ds.ReadXml(reader);
答案 1 :(得分:0)
使用Linq-to-Xml
,您可以获得此类数据
//using System.Xml.Linq;
//using System.Linq;
//xmlStr = your xml string
var xDoc = XDocument.Parse(xmlStr);
var nvs = xDoc.Descendants("nv");
var nads = nvs.Select(nv => nv.Elements("nad").First().Value).ToList();
var thirdRs = nvs.Select(nv => nv.Elements("r").ElementAt(2).Value).ToList();
这是代码为样本xml
生成的内容nads = [&#34; Style = 1,Rfu = 1,Id = 132&#34;,&#34; Style = 1,Rfu = 1,Id = 433&#34;,&#34; Style = 1,RFU = 1,ID = 665&#34; ]
thirdRs = [&#34; 8&#34;,&#34; 30&#34;,&#34; 90&#34;]