En el borrador XML de muestra:
<unit name="Alpha">
<unit name="One">
█1
</unit>
<unit name="Two">
█2
</unit>
</unit>
Quiero encontrar alguna forma de mostrar XPath que contenga
unit@name="Alpha"/unit@name="One"
cuando el símbolo de intercalación está en la posición █1o
unit@name="Alpha"/unit@name="Two"
cuando el símbolo de intercalación está en la posición █2para poder editar archivos XML grandes sin colapsar su esquema y leer los atributos de nombre por mí mismo.
Idealmente, me gustaría encontrar una manera de obtener tal XPath en algún editor de texto gratuito en Windows.
Después de que no hubo respuesta, desarrollé un script Python simple para usar con el complemento Python Script en el editor Notepad ++ . Se puede adjuntar a un método abreviado de teclado o a un icono de la barra de herramientas* para mostrar todas las etiquetas XML principales de la etiqueta que se encuentra en la posición del cursor.
import re
matches = []
def match_found(m):
matches.append(m.group(0))
editor.research('<[A-Za-z0-9_]+[^/>]*>|</[A-Za-z0-9_]+>', match_found, 0, 0, editor.getCurrentPos())
path = []
for m in matches:
if m[:2] == "</":
path.pop()
elif m[-2:] != "/>":
path.append(m)
msg = ""
for m in path:
msg += m + "\n"
notepad.messageBox(msg, "Parents of current tag", 0)
*) debido a un problema interno actual del complemento, el script solo funciona cuando está adjunto al segundo ícono de la barra de herramientas o superior agregado por este complemento. El primer ícono tiene problemas, adjunte algo y no haga clic en él. Una forma más efectiva es simplemente vincular un atajo de teclado a través de Configuración > Asignador de atajos > Comandos de complemento .
El editor CudaText (gratis) tiene el complemento CudaExt (instalar en Complementos/AddonManager), da el comando "Árbol de código: Mostrar la ruta actual en la barra de estado".
Para el archivo XML, el comando muestra la ruta en el árbol XML, como en la captura de pantalla (barra amarillenta en la parte inferior). Solo nota: el cursor debe estar dentro <tag ... >
, no después.
Rprograma
miroxlav
Rprograma
miroxlav
Rprograma