【问题标题】:Loading Nested XML data in Listview in asp.net & c#在 asp.net & c# 中的 Listview 中加载嵌套的 XML 数据
【发布时间】:2012-10-19 13:09:47
【问题描述】:

XML 文件

<?xml version="1.0" encoding="utf-8"?>
<Eticket>
    <BookingRef>17313</BookingRef>
    <CompID>HA</CompID>
    <DecimalPreference>2</DecimalPreference>
    <AttachGDSRules>False</AttachGDSRules>
    <FareDetails>
        <BaseFare>1440</BaseFare>
        <Fees>0</Fees>
    </FareDetails>
    <ClientInfo>
        <Client>xyz abc</Client>
        <Address>70 pqrlane</Address>
    </ClientInfo>
</Eticket>

ASPX

<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/temp/temp.xml"></asp:XmlDataSource>
<asp:ListView ID="ListView1" runat="server" DataSourceID = "XmlDataSource1">
    <LayoutTemplate>
        <div id="ItemPlaceholderContainer" runat="server">
            <span id="ItemPlaceholder" runat="server"></span>
        </div>
    </LayoutTemplate>
    <ItemTemplate>
        <div class="Eticket">
            <asp:Label ID="BookingRef" runat="server" datasrc="#text" Text='<%#XPath("BookingRef") %>'></asp:Label>
            <asp:Label ID="CompID" runat="server" Text='<%#XPath("CompID") %>'></asp:Label>
            <asp:Label ID="DecimalPreference" runat="server" Text='<%#XPath("DecimalPreference") %>'></asp:Label>
            <asp:Label ID="BaseFare" runat="server" Text='<%#XPath("BaseFare") %>'></asp:Label>
            <asp:Label ID="Client" runat="server" Text='<%#XPath("Client") %>'></asp:Label>
            <asp:Label ID="Address" runat="server" Text='<%#XPath("Address") %>'></asp:Label>                    
        </div>
    </ItemTemplate>
</asp:ListView>

以上数据只返回子值,即

预期输出为:

17313  HA  2  1440  xyz  abc  70 pqrlane

我得到的实际输出是:

1440 xyz abc 70 pqrlane

请告诉我哪里出错了。
如果需要更多详细信息,希望这些信息就足够了。
谢谢

【问题讨论】:

    标签: c# asp.net xml listview xml-serialization


    【解决方案1】:

    我无法对此进行测试,但我猜XmlDataSource 假设您有一个根元素,其中包含一个或多个实体。您的 XML 文件在根目录中仅包含一个实体。

    • 要么用另一个元素包装 xml 文件:

      <?xml version="1.0" encoding="utf-8"?>
      <Etickets>
          <Eticket>
              ...
          </Eticket>
      </Etickets>
      
    • 或者在 XmlDataSource 上指定一个 XPath 属性:

      <asp:XmlDataSource ID="XmlDataSource1" runat="server"
          DataFile="~/temp/temp.xml" XPath="/" />
      

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多