2014-01-29 10 views
6

cts:element-query(xs:QName("elm"),cts:and-query(())) wird alle Fragmente geben, wo das Element Ulme vorhanden ist.Überprüfung der Anwesenheit von Attribut mit CTS: Abfrage

Ebenso, wenn ich alle Dokumente möchten, wo ein Attribut (zB atr) vorhanden unter Ulme ist was würde ich tun?

cts:element-attribute-value-query() erfordert, dass ich einen Wert übergebe, der mit dem Attributwert übereinstimmt. Aber ich möchte nur die Existenz des Attributs prüfen, unabhängig davon, welchen Wert es enthält.

Antwort

1

Versuchen Sie es mit einem Platzhalter. Ein Unterschied zwischen Elementen und Attributen besteht darin, dass Elemente leer sein können. Attribute können nicht, daher sollten sie immer einem Platzhalter entsprechen. Möglicherweise müssen Sie einige Zeichenindizes für eine optimale Leistung aktivieren.

cts:element-attribute-value-query(
    xs:QName('div'), xs:QName('id'), '*')) 
+0

Wird es nicht erforderlich sein, die Werte zu überprüfen (obwohl jeder Wert übereinstimmen würde) und damit die Werte zu lesen? – callow

+1

@mblakele, überrascht zu sagen, dass XML-Attribute nicht leer sein können. Ich denke, sie können es. –

+0

Sie können den Wert "" haben. Leere Elemente sind speziell. – mblakele

3

Sie können es durch ein einfaches cts: Element-Attribut-Wert-Abfrage

cts:element-attribute-value-query(
xs:QName('element'), xs:QName('attribute'), '*')) 

Falls Sie nicht wildcarded Suche wahr in der Datenbank festgelegt haben, müssen Sie auch Wildcards aktiviert die Suche liefern explizit in cts: Element-Attribut-Wert-Abfrage

cts:element-attribute-value-query(
xs:QName('element'), xs:QName('attribute'), '*', ("wildcarded"))) 

auf dieser Für weitere Informationen können Sie cts:element-attribute-value-query Seite überprüfen

Verwandte Themen