假设我有一个类似于此的 XML 层次结构:
<Animal>
<Kingdom>
<Phylum>
<Class></Class>
<Class></Class>
</Phylum>
<Phylum>
<Class></Class>
<Class></Class>
</Phylum>
</Kingdom>
<Kingdom>
<Phylum>
<Class></Class>
<Class></Class>
</Phylum>
</Kingdom>
</Animal>
(etc.)
同样,我有使用嵌套中继器的 ASP.NET 代码,如下所示:
<asp:Repeater ID="ShowKingdom" runat="server" DataSource="(SomeDataSource)">
<ItemTemplate>
<asp:TextBox ID="txtKingdom" runat="server" XPath="/*[local-name()='Animal']/*[local-name()='Kingdom'][{0}]">
<asp:Repeater ID="ShowPhylum" runat="server" OnItemDataBound="(SomeDataBinder)">
<ItemTemplate>
<asp:TextBox ID="txtKingdom" runat="server" XPath="/*[local-name()='Animal']/*[local-name()='Kingdom'][{0}]/*[local-name()='Phylum'][???]">
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
我的问题:如何为嵌套中继器内的 XPath指定节点索引选择器“[???]” ?!?
注意:我的语言是 ASP.NET 中的 VB。
编辑:我试过使用不同的索引“[{1}]”(给我一个索引越界错误),一个相对的Xpath“[local-name()='Phylum']”(没有“/ *" 在它前面——不识别节点/路径),并修补嵌套的转发器数据源(它要么不识别 XPath,要么崩溃)。
显然,我无法让这些工作中的任何一个工作。我需要考虑另一种方法吗?
编辑#2:我尝试过的另一件事不想工作:对于嵌套中继器:
DataSource="<%# XPathSelect('Phylum')%>"