2012-06-29 63 views
0

如果我有这样的一个XML文件:如何使用xpath过滤xml数据?

<?xml version="1.0" encoding="utf-8" ?> 
<Employees> 
    <Employee Department="Sales"> 
     <Name>David</Name> 
     <Salary>20000</Salary> 
    </Employee> 
    <Employee Department="Finance"> 
     <Name>Simon</Name> 
     <Salary>18000</Salary> 
    </Employee> 
    <Employee Department="Accounts"> 
     <Name>Peter</Name> 
     <Salary>22000</Salary> 
    </Employee> 
</Employees> 

,然后将数据正在显示一个中继器中,像这样:

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="XmlDataSource1"> 
    <ItemTemplate> 
     <strong> 
    <%# XPath("@Department")%><br /> 
    </strong> 
    - Name: <%#XPath("Name")%><br /> 
    - Salary: <%#XPath("Salary")%><br /> 
    </ItemTemplate> 
</asp:Repeater> 

我怎么可能只显示该雇员的销售部?这是在一个asp.net web应用程序。

回答

1

背景由数据源上使用XPath尝试此。

<asp:XmlDataSource DataFile="data.xml" runat="server" ID="XmlDataSource1" XPath="/Employees/Employee[@Department='Sales']" /> 

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="XmlDataSource1"> 
    <ItemTemplate> 
    <strong>Department: <%# XPath("@Department")%><br /></strong> 
    - Name: <%#XPath("Name")%><br /> 
    - Salary: <%#XPath("Salary")%><br /> 
    </ItemTemplate> 
</asp:Repeater> 

输出

Department: Sales 
- Name: David 
- Salary: 20000 
+0

是的,这正是我一直在寻找,不可能弄清楚如何筛选,并得到所有的值。我的查询只是返回相同的。谢谢! –

0

数据中使用所述过滤器作为数据源 中继器,这可能似乎无法