很抱歉简单,但是这个是我的,这里是xml
<tarification cle="i54534452">
<gamme reference="new-securite-sante">
<tarif formule="NS1">26.12</tarif>
<tarif formule="NS2">29.08</tarif>
</gamme>
<gamme reference="new-equilibre-sante">
<tarif formule="125">32.92</tarif>
<tarif formule="150">42.20</tarif>
<tarif formule="200">52.04</tarif>
</gamme>
<gamme reference="new-full-sante">
<tarif formule="125">36.81</tarif>
<tarif formule="150">43.86</tarif>
<tarif formule="200">52.07</tarif>
</gamme>
<gamme reference="new-performance">
<tarif formule="125">40.47</tarif>
<tarif formule="150">49.18</tarif>
<tarif formule="200">55.91</tarif>
</gamme>
</tarification>
这是代码C#
XDocument docc = XDocument.Parse(chaineXML);
var formule = docc.Descendants("tarif").Attributes("formule")
.Select(x => x.Value).ToList();
var tarif = docc.Descendants("tarif")
.Select(x => x.Value).ToList();
我如何获得attribute formule 以及所有元素 tarif ???它显示异常“根本问题的数据:级别无效”。
答案 0 :(得分:2)
使用Elements
:
XDocument myList = XDocument.Load(@"E:\a.xml");
var obj = myList
.Elements("tarification")
.Descendants("tarif")
.Attributes("formule")
.Select(s => s.Value)
.ToList();
foreach (var item in obj)
{
Console.WriteLine(item);
}
答案 1 :(得分:0)
我认为chaineXML字符串中有多个tarification元素,因为该元素具有键属性,这就是您遇到的问题。您不能使用XDocument.Parse来解析包含多个根级别元素的字符串
将代码的第一行更改为:
时,代码是否有效 XDocument docc = XDocument.Parse("<ROOTELEMENT>"+chaineXML+"</ROOTELEMENT>");
这样做有效地将所有tarification元素包装到根文档元素中。