XPath仅在我添加额外节点时才有效

时间:2014-01-31 16:52:41

标签: asp.net xml xpath

我是使用XML的新手,也是XPath的新手。 我正在尝试在XML文档中选择一个字段,并在网页上的标签中显示该字段。听起来很简单。

以下是我网页上的代码:

<body>
    <form id="form1" runat="server">
    <div>
        <asp:ListView ID="NewsListView" runat="server" DataSourceID="NewsDataSource">
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" ><%#XPath("temp1")%></asp:Label>
            </ItemTemplate>
        </asp:ListView>

        <asp:XmlDataSource ID="NewsDataSource" runat="server" DataFile="~/news.xml"></asp:XmlDataSource>
    </div>
    </form>
</body>

使用类似下面的XML文档时,这样可以100%正常工作。

<test>
  <response>
    <temp1>23.7</temp1> 
  </response>
 </test>

但我试图访问的XML文档,我无法更改,如下所示:

  <response>
    <temp1>23.7</temp1> 
  </response>

基本上是相同的文档,但顶部没有额外的节点。

无论如何我可以让XPath在没有额外节点的情况下读取temp1的值吗?

感谢。

3 个答案:

答案 0 :(得分:0)

我不熟悉xpath但是看文档..你可以添加

 <asp:Repeater 
        id="Repeater1" 
        runat="server" 
        DataSource='<%# XPathSelect("response") %>' >  

答案 1 :(得分:0)

找到解决方案。添加XPath =&#34; / response&#34;到XMLDataSource就可以了。

答案 2 :(得分:0)

我之前从未尝试过这个API,但它是否可以做这样的事情?

<%#XPath("temp1/text()")%>

此xpath应返回temp1元素的文本。