cts:element-query(xs:QName("elm"),cts:and-query(()))
將給出存在元素elm的所有片段。使用cts檢查屬性的存在性:查詢
同樣的,如果我想所有的文件,其中一個屬性(比如ATR)存在下榆那麼我有什麼呢?
cts:element-attribute-value-query()
要求我傳遞一個值以匹配屬性值。但是我想只檢查屬性的存在,而不管它包含什麼值。
cts:element-query(xs:QName("elm"),cts:and-query(()))
將給出存在元素elm的所有片段。使用cts檢查屬性的存在性:查詢
同樣的,如果我想所有的文件,其中一個屬性(比如ATR)存在下榆那麼我有什麼呢?
cts:element-attribute-value-query()
要求我傳遞一個值以匹配屬性值。但是我想只檢查屬性的存在,而不管它包含什麼值。
嘗試使用通配符。元素和屬性之間的一個區別是元素可以是空的。屬性不能,所以它們應該總是匹配通配符。您可能需要啓用某些字符索引才能獲得最佳性能。
cts:element-attribute-value-query(
xs:QName('div'), xs:QName('id'), '*'))
您可以通過一個簡單的CTS做到這一點:元素的屬性值查詢
cts:element-attribute-value-query(
xs:QName('element'), xs:QName('attribute'), '*'))
如果您還沒有設置通配符搜索真正的數據庫,您還需要提供通配符啓用搜索明確CTS:元素的屬性值查詢
cts:element-attribute-value-query(
xs:QName('element'), xs:QName('attribute'), '*', ("wildcarded")))
有關更多細節,您可以檢查cts:element-attribute-value-query頁
它不需要檢查值(儘管任何值都是匹配),因此在讀取值時需要一些時間? – callow
@mblakele,在這裏很驚訝,你說XML屬性不能爲空。我認爲他們可以。 –
它們可以具有「」的值。空元素是特殊的。 – mblakele