我不知道到底是爲什麼XPath表達式:HTML 4.0實體XPath查詢
//h3[text()='Foo › Bar']
不匹配:
<h3>Foo › Bar</h3>
確實似乎對不對?我如何查詢該標記?
我不知道到底是爲什麼XPath表達式:HTML 4.0實體XPath查詢
//h3[text()='Foo › Bar']
不匹配:
<h3>Foo › Bar</h3>
確實似乎對不對?我如何查詢該標記?
XPath不定義任何特殊轉義序列。在XSLT中使用XPath(例如,在XSLT文檔的元素屬性中)時,轉義序列由讀取樣式表的XML處理器處理。如果您通過庫在非XML上下文(例如,來自Java或C#或其他語言)中使用XPath,並且您的XPath查詢是該語言中的字符串字面值,則除了語言本身之外,不會執行任何轉義處理通常會。
如果這是C#或Java,這應該工作:
String xpath = "//h3[text()='Foo \u8250 Bar']";
...
作爲一個側面說明,它不會在XSLT工作,要麼,作爲XSLT使用XML,它並沒有定義字符實體›
- 它只定義<
,>
,"
,'
和&
。您必須使用艐
,或者在XSLT樣式表的DOCTYPE聲明中自己定義字符實體。
的XPath運行在一個XML文檔的抽象,邏輯結構,而不是它的表面語法
...所以,除非你正在使用的查詢中(而不是以「查詢」)解析該實體的語言(也許XSLT帶有包含實體的DTD(如果可能的話,我離XSLT專家很遠)),但我不希望它起作用。
使用文字字符或任何語言你正在使用XPath從公認的轉義序列。
這應該相匹配。您使用哪種語言的XML庫? – Welbog 2010-01-15 20:26:18