Получить все <image>узлы из xml, используя xpath и репитер asp.net - PullRequest
0 голосов
/ 19 июля 2011

У меня есть повторитель с xmlDataSource. То, что мне нужно, очень просто, но я не могу этого сделать. Используя этот XML-файл, я хочу отобразить все узлы из проекта "ProjectOne".

<?xml version="1.0" encoding="utf-8" ?>
<projects>
<project name="ProjectOne">
    <description>this is the description</description>
    <image>image1</image>
    <image>image2</image>
    <image>image3</image>
</project>
<project name="ProjectTwo">
    <description>this is the description</description>
    <image>image1</image>
</project>

Я использую этот повторитель с источником xmlDataSource. Но он показывает только первый узел изображения (image1) вместо того, чтобы показывать все узлы (image1 + image2 + image3)

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="XmlDataSource1"  >
<ItemTemplate>
    <div>
        <img src='<%#XPath("image")%>' alt='test' />
    </div>
</ItemTemplate>
</asp:Repeater>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="App_Data/ProjectsPosta.xml" XPath="projects/project[@name='ProyectOne'] " />

Я хочу сделать это, не трогая .cs, если это возможно
Есть идеи?
Спасибо

1 Ответ

1 голос
/ 20 июля 2011

Я не знаю много о ретрансляторе ASP, но, зная XPath, я бы попробовал вот что:

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="XmlDataSource1"  >
  <ItemTemplate>
    <div>
        <img src='<%#XPath(".")%>' alt='test' />
    </div>
  </ItemTemplate>
</asp:Repeater>
<asp:XmlDataSource ID="XmlDataSource1" runat="server"
      DataFile="App_Data/ProjectsPosta.xml"
      XPath="projects/project[@name='ProjectOne']/image" />

Обратите внимание на изменение параметра ProyectOne на ProjectOne.

...