2012-06-29 6 views
0

Если у меня есть XML-файл с чем-то вроде этого:Как фильтровать xml-данные с помощью xpath?

<?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 webapp.

ответ

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

данных в фоновом режиме, используя фильтр в качестве источника данных Repeater, который никак не мог

Смежные вопросы