Domanda

Voglio selezionare l'elemento più in alto in un documento che ha un determinato spazio dei nomi (prefisso).

Più specificamente: ho documenti XML che iniziano con / html / body (nello spazio dei nomi XHTML) o con uno dei numerosi elementi in uno specifico spazio dei nomi. Voglio effettivamente eliminare / html / body e restituire semplicemente il contenuto del corpo O l'intero elemento spaziato alla radice.

È stato utile?

Soluzione

In XPath 2.0 e XQuery 1.0 è possibile eseguire il test con il prefisso dello spazio dei nomi utilizzando in-scope-prefixes () in un predicato. per es.

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

Se non puoi usare v2, in XPath 1.0 puoi usare lo spazio dei nomi () per testare lo spazio dei nomi stesso. per es.

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

Altri suggerimenti

L'espressione XPath che desidero è:

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

Dove il " html " il prefisso è mappato allo spazio dei nomi XHTML e il "quot" pippo " il prefisso è associato al mio spazio dei nomi di destinazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top