1
我正在看W3學校網站中的示例,他們能夠通過對price元素施加條件來顯示標題元素值。XPath使用local-name()函數未選擇XML子元素
使用沒有名稱空間的XPATH表達式。
/bookstore/book[price>35]/title
然而,當我改變了相同的XML有命名空間和author元素強加條件顯示價格元素的值,我看到異常。下面是帶命名空間的XPATH表達式。
/*[local-name()='bookstore']/*[local-name()='book'[local-name()='author' and text()='Giada De Laurentiis']]/*[local-name()='price']
它與例外
Exception in thread "main" javax.xml.transform.TransformerException: ERROR! Unknown op code: 21
at com.sun.org.apache.xpath.internal.compiler.Compiler.error(Unknown Source)
at com.sun.org.apache.xpath.internal.compiler.OpMap.getFirstPredicateOpPos(Unknown Source)
at com.sun.org.apache.xpath.internal.axes.WalkerFactory.analyzePredicate(Unknown Source)
能否請你讓我知道什麼是錯的有命名空間XPATH表達式失敗?
與XML命名空間
<?xml version="1.0" encoding="UTF-8"?>
<bk:bookstore xmlns:bk = "http://www.example.com/" xmlns:typ = "http://www.example.com/types">
<bk:book category = "COOKING">
<typ:title lang = "en">Everyday Italian</typ:title>
<typ:author>Giada De Laurentiis</typ:author>
<typ:year>2005</typ:year>
<typ:price>30.00</typ:price>
</bk:book>
<bk:book category = "CHILDREN">
<typ:title lang = "en">Harry Potter</typ:title>
<typ:author>J K. Rowling</typ:author>
<typ:year>2005</typ:year>
<typ:price>29.99</typ:price>
</bk:book>
<bk:book category = "WEB">
<typ:title lang = "en">XQuery Kick Start</typ:title>
<typ:author>James McGovern</typ:author>
<typ:year>2003</typ:year>
<typ:price>49.99</typ:price>
</bk:book>
謝謝你現在在工作。 – satish