Мне нужно отфильтровать тип автомобиля из моего xml, но он продолжает выдавать ошибку «Ожидаемый '}'» ТИП.
XML-файл
<CATALOG>
<CAR>
<TYPE>SUV</TYPE>
<PRICE>20000</PRICE>
</CAR>
</CATALOG>
Я получаю сообщение об ошибке при попытке:
XPath=/CATALOG/CAR[TYPE='SUV']
Но это работает:
XPath=/CATALOG/CAR[PRICE>10000]
Поэтому я получаю ошибку только при использовании equal
Обновлено: Это код, который я использую для отображения элементов:
<ListBox x:Name = "listBoxCar" Grid.Column = "0" Grid.Row = "1" HorizontalAlignment = "Left" VerticalAlignment = "Top"
ItemsSource = "{Binding Source = {StaticResource CarDataSource},
XPath=/CATALOG/CAR[TYPE='SUV']}"
ItemTemplate = "{DynamicResource carTemplate}" />
xml обновился, но был правильным в файле.
Опубликуйте свой код, пожалуйста. В любом случае это не связано с WPF. И да, это недопустимый XML — за <PRICE> не следует </PRICE>
Я думаю, это из-за вашего xml, пожалуйста, проверьте проверку xml, см.: w3schools.com/xml/xml_validator.asp
@SubZero обновите вопрос и опубликуйте свой код. Это XAML, но не код. И пожалуйста исправьте свой XML.
Я определенно рекомендую попытаться воспроизвести это в консольном приложении, явно выполняющем XPath - любому будет намного проще вам помочь.
</CATALOG должен быть </CATALOG> (возможно, просто проблема с копированием/вставкой в окне). и ваши оригинальные работы (/CATALOG/CAR[TYPE='SUV']) через тестовый прицел: freeformatter.com/xpath-tester.html#ad-output
Нет воспроизведения с XmlDocument и SelectSingleNode(@"/CATALOG/CAR[TYPE='SUV']"). Это возвращает весь элемент автомобиля.
XPath=/CATALOG/CAR[TYPE='SUV'] является допустимым синтаксисом XAML нет. Предполагается, что это строка. Должно быть XPath = "/CATALOG/CAR[TYPE='SUV']". Вот на что жалуется ошибка — она нашла что-то, что не смогла разобрать, пока не дошла до конца тега Binding. Пример документации показывает, как писать операторы XPath.
Если вы получили ошибку, сообщите нам, что это за ошибка: здесь начинается диагностика!





Можете ли вы поделиться своим кодом. Также ваш XML выглядит недействительным.