xml - XPath没有得到任何节点

标签 xml xaml xpath

我正在尝试使用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/

相关文章:

c# - 基于 DateTime 属性 C#、XPath 对 XML 节点进行排序

javascript - 如何使用经典 ASP 在服务器端包含 javascript 文件?

java - 第二个 Activity - Android 应用程序。无法实例化 Activity ComponentInfo

c# - 反转 ObservableCollection

c# - 将 WPF 文本设置为 TextBlock

xpath - 使用XPath查找元素

javascript - jQuery : Take the exact value from the xml

java - pom.xml 中的多个标签/预期 token 问题

c# - UWP - 在 TextBlock 中垂直居中文本

xpath:我如何查询一个名为 test 且根本没有属性的元素?