Используйте XPath для анализа имени элемента, содержащего двоеточие

поэтому я пытаюсь разобрать некоторые из WootAPI С XPath. Проблема, с которой я сталкиваюсь, заключается в том, что у нескольких элементов есть двоеточия в их имени, такие как woot:price или woot:condition. Теперь, пытаясь использовать XPath //rss/channel/item/woot:price не будет захватывать содержимое элемента woot:price из-за кишечника, я думаю. Что я могу сделать, чтобы получить его?

1 ответов


двоеточия, потому что элементы имеют префикс пространства имен и привязаны к пространству имен Woot.

вы должны прочитать о пространства имен XML и как они влияют на XPATH и XSLT.

если вы хотите ссылаться на элементы Woot в вашем XPATH, вам либо нужно:

  1. объявить пространство имен Woot http://www.woot.com/ Так что при использовании этого префикса пространства имен в вашем XPATH он будет понят.
  2. используйте более общий Оператор XPATH, использующий фильтры предикатов, использующие local-name() и namespace-uri() в соответствие элемент.
    • //rss/channel/item/*[local-name()='price' and namespace-uri()='http://www.woot.com/']