Cómo enumerar todos los elementos principales posibles de un elemento secundario en xmlstarlet

campo propio

Dados estos datos:

<root>
  <A>
    <A1 id="1">
        <elem>apple</elem>
    </A1>
  </A>

  <B>
    <B1 id="2">
        <elem>banana</elem>
    </B1>
  </B>

  <C id="3">
    <elem>grapes</elem>
    <C1></C1>
  </C>
</root>

¿Cómo averiguo todos los elementos principales posibles del elemento elem ? Hasta ahora, puedo averiguarlo usando la opción -m por:

$ xmlstarlet sel -t -m '//elem/..' -v 'concat(name(),"=",@id)' -n input3.xml
A1=1
B1=2
C=3

$

Pero, ¿cómo hago lo mismo usando una expresión xpath con -v? Por ejemplo, solo puedo referirme al atributo de identificación del padre, pero no al nombre del elemento principal:

$ xmlstarlet sel -t -v '//elem/../@id' input3.xml
1
2
3
$
Daniel Haley

Podrías hacerlo:

xmlstarlet sel -t -v "name(//elem/..)" input3.xml

pero eso solo le dará el nombre de la primera coincidencia (xmlstarlet es un procesador XPath 1.0).

La única forma de hacer esto, como encontraste, es haciendo coincidir ( -m) primero:

xmlstarlet sel -t -m "//elem/.." -v "name()" -n input3.xml

aunque prefiero un XPath ligeramente diferente:

xmlstarlet sel -t -m "//*[elem]" -v "name()" -n input3.xml

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Cómo enumerar todos los elementos principales posibles de un elemento secundario en xmlstarlet

¿Cómo puedo contar todos los elementos de subdocumento posibles para un elemento superior dado en Mongo?

JavaScript: obtiene todos los elementos principales de un elemento

¿Cómo borro todos los estilos de un elemento secundario?

Clasificación de elementos principales por los valores de atributo de un elemento secundario

¿Cómo apunta solo a un elemento secundario de una función .each y no a todos los elementos de esa clase?

¿Cómo cambiar los datos principales de un componente secundario?

¿Cómo cambiar los datos principales de un componente secundario?

¿Cómo haría cambios en todos los elementos de la matriz de un elemento determinado?

Cómo obtener todos los atributos válidos posibles en un elemento DOM

¿Cómo establecer elementos centrales en el cuerpo sin centrar todos los elementos dentro de los elementos principales?

¿Cómo establecer elementos centrales en el cuerpo sin centrar todos los elementos dentro de los elementos principales?

¿Cómo enumerar todos los elementos en MongoDB en la estructura de árbol?

¿Cómo enumerar todos los elementos en MongoDB en la estructura de árbol?

Cómo encontrar todos los nodos principales por un valor en el nodo secundario con SQL Server

Cómo enumerar todos los elementos de un array JSON por separado dentro de MySQL Query?

¿Cómo obtener todos los elementos antes de un elemento en particular usando javascript puro?

Cómo enumerar todos los elementos de una lista en Appium

Quiero que un solo elemento secundario exija el ancho de todos los demás elementos

enumerar todos los elementos en un canal en búfer

Vue - ¿Cómo alternar el elemento secundario de un elemento en una lista de elementos DOM?

¿Cómo creo una columna de composición de Jetpack en la que se puede desplazar un elemento secundario del medio, pero todos los demás elementos secundarios siempre están visibles?

Dada una matriz de ordenamientos por pares, cómo enumerar todos los posibles pedidos totales

¿Cómo enumerar todos los nombres de funciones de un módulo de Python en C ++?

Cómo enumerar todos los archivos de un directorio de forma recursiva en c

¿Cómo comparar un elemento de matriz con todos los demás elementos de matriz en un bucle for?

Recuperar todos los nombres de atributos de un elemento XML con xpath en xmlstarlet

Cómo ver todos los conjuntos de consultas posibles de un modelo en django

¿Por qué obtengo elementos principales cuando llamo al método SimpleXMLElement :: xpath en un elemento secundario?

TOP Lista

CalienteEtiquetas

Archivo