我正在尝试使用XAML读取XML文件并将其显示在应用程序上。这是我的XML。
<?xml version="1.0" encoding="ISO8859-1" ?>
<CATALOG>
<PLANT>
<COMMON>Bloodroot</COMMON>
<BOTANICAL>Sanguinaria canadensis</BOTANICAL>
<ZONE>4</ZONE>
<LIGHT>Sun</LIGHT>
<PRICE>$2.44</PRICE>
<AVAILABILITY>031599</AVAILABILITY>
</PLANT>
<PLANT>
<COMMON>Columbine</COMMON>
<BOTANICAL>Aquilegia canadensis</BOTANICAL>
<ZONE>3</ZONE>
<LIGHT>Shade</LIGHT>
<PRICE>$9.37</PRICE>
<AVAILABILITY>030699</AVAILABILITY>
</PLANT>
在这里,我只需要显示COMM = LIGHT = Sun的内容
我尝试了这个,但是没有用
<Grid.Resources>
<XmlDataProvider x:Key="CatalogusDataSource" Source="Data\catalogus.xml" XPath="CATALOG"/>
<DataTemplate x:Key="nameItemTemplate">
<Label Content="{Binding XPath=*}"/>
</DataTemplate>
</Grid.Resources>
....
<ScrollViewer Grid.Column="0" Grid.Row="1">
<ListBox Name="ListBoxSchaduw"
ItemsSource="{Binding Source={StaticResource CatalogusDataSource},
XPath=/CATALOG/PLANT[PRICE\=\Sun]/COMMON}"
ItemTemplate="{StaticResource nameItemTemplate}" />
</ScrollViewer>
我不知道我在做什么错
最佳答案
您说过要选择COMMON
元素,其中LIGHT
是'Sun'
,但是您的XPath是按PRICE
进行过滤的,而不是字符串值'Sun'
而是有一个未引用的Sun
,该元素将被求值就像在比较名为Sun
的元素一样。
将XPath更改为:
/CATALOG/PLANT[LIGHT='Sun']/COMMON
关于xml - XPath没有得到任何节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54751014/