Frage

Ich möchte das oberste Element in einem Dokument wählen, die einen bestimmten Namespace (Präfix).

Genauer gesagt: Ich XML-Dokumente, die entweder mit / html / body starten (im XHTML-Namensraum) oder mit einem von mehreren Elementen in einem bestimmten Namespace. Ich möchte effektiv Streifen aus / html / Körper und zurück nur den Körper Inhalt oder das gesamte Wurzelelement Namespace.

War es hilfreich?

Lösung

In XPath 2.0 und XQuery 1.0 können Sie testen gegen die Namespacepräfix mit der in-scope-Präfixe () Funktion in einem Prädikat. z.

//*[in-scope-prefixes(.)='html']

Wenn Sie v2 verwenden kann nicht, in XPath 1.0 können Sie die namespace-uri () Funktion testen gegen den Namensraum selbst. z.

//*[namespace-uri()='http://www.w3c.org/1999/xhtml']

Andere Tipps

Der XPath-Ausdruck, was ich will:

/html:html/html:body/node()|/foo:*

Wenn der „html“ Präfix für den XHTML-Namensraum zugeordnet wird, und der „foo“ Präfix zu meinem Ziel-Namensraum abgebildet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top