Asp.net 如何将repeater控件配置为仅使用XmlDataSource显示特定元素值的数据?

Asp.net 如何将repeater控件配置为仅使用XmlDataSource显示特定元素值的数据?,asp.net,vb.net,visual-studio,visual-studio-2012,Asp.net,Vb.net,Visual Studio,Visual Studio 2012,在开始之前,这是我的xml文件中的一些数据 <item> <menuType>Lunch</menuType> <itemName>Sweet Caramel</itemName> <price>30</price> <preparationTime>20</preparationTime> </item> <item>

在开始之前,这是我的xml文件中的一些数据

    <item>
    <menuType>Lunch</menuType>
    <itemName>Sweet Caramel</itemName>
    <price>30</price>
    <preparationTime>20</preparationTime>
</item>
<item>
    <menuType>Dinner</menuType>
    <itemName>Cocoa Swirl Cheesecake</itemName>
    <price>9</price>
    <preparationTime>30</preparationTime>
</item>
<item>
    <menuType>Lunch</menuType>
    <itemName>Spanish Monkfish</itemName>
    <price>10</price>
    <preparationTime>30</preparationTime>
</item>
<item>
    <menuType>Dinner</menuType>
    <itemName>Ice Cream</itemName>
    <price>20</price>
    <preparationTime>10</preparationTime>
</item>
<item>
    <menuType>Lunch</menuType>
    <itemName>Complete Fruit Salad</itemName>
    <price>10</price>
    <preparationTime>15</preparationTime>
</item>

午餐
甜焦糖
30
20
晚餐
可可漩涡芝士蛋糕
9
30
午餐
西班牙狗鱼
10
30
晚餐
冰淇淋
20
10
午餐
全果沙拉
10
15

所以我的问题是,我如何配置中继器控件,使其仅显示menuType值为“午餐”的项目。

我想出来了。您需要在
XmlDataSource
XPath
属性中设置过滤器<代码>XPath=“/items/item[menuType='午餐]]”







您已经将XML反序列化了吗?反序列化是什么意思?我不知道这是否可以用etcHow来完成。你现在正在将数据绑定到中继器吗?使用xmldataSource控件也可以发布吗?因为在repeater中,您几乎可以按照自己的意愿设计HTML。它似乎没有打印出任何内容,而XmlDataSource的XPath属性中的“项”来自何处?没有称为items的元素。刚开始我只需要两个斜杠。可能是因为我的软件版本
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="menuItems.xml" XPath="/items/item[menuType='Lunch']"></asp:XmlDataSource>

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="XmlDataSource1">
    <ItemTemplate>
        <%# XPath("menuType") %>
        <br />
        <%# XPath("itemName") %>
        <br />
        <%# XPath("price") %>
        <br />
        <%# XPath("preparationTime") %>
        <hr />
    </ItemTemplate>
</asp:Repeater>