una secundaria relaciones modelo llave incluir hacer foranea externa dependencias crear como columnas clave agregar xml xslt xpath subtree xslkey

xml - relaciones - llave secundaria sql



¿Puede XPath hacer una búsqueda de clave externa en dos subárboles de un XML? (4)

Creo que esto funcionará

/root/base/tent[/root/bucket/tent/@key = @key ]/@color

Digamos que tengo el siguiente XML ...

<root> <base> <tent key="1" color="red"/> <tent key="2" color="yellow"/> <tent key="3" color="blue"/> </base> <bucket> <tent key="1"/> <tent key="3"/> </bucket> </root>

... ¿cuál sería el XPath que devuelve que el "cubo" contiene "rojo" y "azul"?


No es lindo. Como con cualquier búsqueda, necesita usar current ():

/ root / bucket [/ root / base / tent [@key = current () / tent / @ key] / @ color = ''blue'' o / root / base / tent [@key = current () / tent / @ key ] / @ color = ''rojo'']


Si está utilizando XSLT, le recomiendo configurar una clave:

<xsl:key name="tents" match="base/tent" use="@key" />

A continuación, puede obtener <tent> dentro de <base> con una key particular usando

key(''tents'', $id)

Entonces puedes hacer

key(''tents'', /root/bucket/tent/@key)/@color

o, si $bucket es un elemento <bucket> particular,

key(''tents'', $bucket/tent/@key)/@color


JeniT tiene la respuesta / el código apropiado enumerados aquí. Debe crear la clave antes de recorrer el documento XML y luego realizar coincidencias con esa clave.