|
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
|
Traducción
Original
|
Cómo: Enlazar a datos XML mediante XMLDataProvider y consultas XPath
Nota
|
|---|
|
|
<StackPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Background="Cornsilk"> <StackPanel.Resources> <XmlDataProvider x:Key="InventoryData" XPath="Inventory/Books"> <x:XData> <Inventory xmlns=""> <Books> <Book ISBN="0-7356-0562-9" Stock="in" Number="9"> <Title>XML in Action</Title> <Summary>XML Web Technology</Summary> </Book> <Book ISBN="0-7356-1370-2" Stock="in" Number="8"> <Title>Programming Microsoft Windows With C#</Title> <Summary>C# Programming using the .NET Framework</Summary> </Book> <Book ISBN="0-7356-1288-9" Stock="out" Number="7"> <Title>Inside C#</Title> <Summary>C# Language Programming</Summary> </Book> <Book ISBN="0-7356-1377-X" Stock="in" Number="5"> <Title>Introducing Microsoft .NET</Title> <Summary>Overview of .NET Technology</Summary> </Book> <Book ISBN="0-7356-1448-2" Stock="out" Number="4"> <Title>Microsoft C# Language Specifications</Title> <Summary>The C# language definition</Summary> </Book> </Books> <CDs> <CD Stock="in" Number="3"> <Title>Classical Collection</Title> <Summary>Classical Music</Summary> </CD> <CD Stock="out" Number="9"> <Title>Jazz Collection</Title> <Summary>Jazz Music</Summary> </CD> </CDs> </Inventory> </x:XData> </XmlDataProvider> </StackPanel.Resources> <TextBlock FontSize="18" FontWeight="Bold" Margin="10" HorizontalAlignment="Center">XML Data Source Sample</TextBlock> <ListBox Width="400" Height="300" Background="Honeydew"> <ListBox.ItemsSource> <Binding Source="{StaticResource InventoryData}" XPath="*[@Stock='out'] | *[@Number>=8 or @Number=3]"/> </ListBox.ItemsSource> <!--Alternatively, you can do the following. --> <!--<ListBox Width="400" Height="300" Background="Honeydew" ItemsSource="{Binding Source={StaticResource InventoryData}, XPath=*[@Stock\=\'out\'] | *[@Number>\=8 or @Number\=3]}">--> <ListBox.ItemTemplate> <DataTemplate> <TextBlock FontSize="12" Foreground="Red"> <TextBlock.Text> <Binding XPath="Title"/> </TextBlock.Text> </TextBlock> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </StackPanel>
-
XPath="Book[1]" devolverá el primer elemento de libro ("XML in Action"). Observe que los índices de XPath se basan en 1, no en 0. -
XPath="Book[@*]" devolverá todos los elementos de libro con cualquier atributo. -
XPath="Book[last()-1]" devolverá los elementos de libro del segundo a último libro ("Introducing Microsoft .NET"). -
XPath="*[position()>3]" devolverá todos los elementos de libro salvo los 3 primeros.
<TextBlock FontSize="12" Foreground="Red"> <TextBlock.Text> <Binding Path="Name"/> </TextBlock.Text> </TextBlock>
<XmlDataProvider x:Key="BookData" Source="data\bookdata.xml" XPath="Books"/>
<XmlDataProvider x:Key="BookData" Source="http://MyUrl" XPath="Books"/>
Nota