我需要你的帮助。我有这个xml文件,我需要阅读和显示它,这里是我的xml:
<tarification cle="979987abdcad675e13e016a6ud4777782">
<gamme reference="new-securite-sante">
<tarif formule="NS1">24.02</tarif>
<tarif formule="NS2">26.64</tarif>
</gamme>
<gamme reference="new-equilibre-sante">
<tarif formule="125">27.95</tarif>
<tarif formule="150">34.95</tarif>
<tarif formule="200">41.70</tarif>
</gamme>
<gamme reference="new-full-sante">
<tarif formule="125">33.21</tarif>
<tarif formule="150">38.71</tarif>
<tarif formule="200">44.92</tarif>
</gamme>
<gamme reference="new-performance">
<tarif formule="125">36.45</tarif>
<tarif formule="150">43.33</tarif>
<tarif formule="200">48.17</tarif>
</gamme>
</tarification>
,代码是:
<asp:XmlDataSource
runat="server"
id="XmlDataSource2"
DataFile="myfile.xml" />
<asp:Repeater ID="Repeater3" runat="server" DataSourceID="XmlDataSource2">
<ItemTemplate>
<div id="" runat="server">
<h2>Formule : <%# XPath ("@formule") %>'></h2>
<h2 class="buy"> <%# XPath ("tarif") %>"
<sub>€/ Mois</sub></h2>
</div>
</ItemTemplate>
</asp:Repeater>
我希望我的结果是这样的:
<div>
<h2>Formule : NS1</h2>
<h2 class="buy"> 24.02 <sub>€/ Mois</sub></h2>
</div>
<div>
<h2>Formule : NS2</h2>
<h2 class="buy"> 26.64 <sub>€/ Mois</sub></h2>
</div>
<div>
<h2>Formule : 125</h2>
<h2 class="buy"> 27.95 <sub>€/ Mois</sub></h2>
</div>
我做错了什么?请指正。
hier是正确的代码,代码c#
XmlDocument doc = new XmlDocument();
doc.Load("http://xxxx-xmlfile.com");
XmlNodeList nodes =
doc.SelectNodes("tarification/gamme/tarif");
rpMyRepeater.DataSource = nodes;
rpMyRepeater.DataBind();
<div>
<h2>Formule : <%#((System.Xml.XmlNode)Container.DataItem).Attributes["formule"].Value %></h2>
<h2 class="buy"><%#((System.Xml.XmlNode)Container.DataItem).InnerText%> <sub>€/ Mois</sub></h2>
</div>
它就像一个魅力:)
答案 0 :(得分:0)
问题似乎是“formule”属性在“tarif”对象上,而不是“gamme”对象。所以你可以改变它:
在XMLDataSource上,添加XPath属性:
<asp:XmlDataSource
runat="server"
id="XmlDataSource2"
XPath="/tarification/gamme//tarif"
DataFile="myfile.xml" />
然后更改模板:
<h2>Formule : <%# XPath ("@formule") %></h2>
<h2 class="buy"> <%# XPath (".") %>
或者您可以更改数据以使它们处于同一级别。
答案 1 :(得分:0)
你快到了!在转发器中更改Itemtempalte中的XPath。它应该看起来像:
<h2>Formule : <%# XPath ("tarif/@formule") %></h2>
<h2 class="buy"> <%# XPath ("tarif") %><sub>€/ Mois</sub></h2>
这里生成了html:
<div>
<div id="Repeater3_Div1_0">
<h2>Formule : NS1</h2>
<h2 class="buy"> 24.02 <sub>€/ Mois</sub></h2>
</div>
<div id="Repeater3_Div1_1">
<h2>Formule : 125</h2>
<h2 class="buy"> 27.95 <sub>€/ Mois</sub></h2>
</div>
<div id="Repeater3_Div1_2">
<h2>Formule : 125</h2>
<h2 class="buy"> 33.21 <sub>€/ Mois</sub></h2>
</div>
<div id="Repeater3_Div1_3">
<h2>Formule : 125</h2>
<h2 class="buy"> 36.45 <sub>€/ Mois</sub></h2>
</div>
</div>