Pesquisar documento XML para string e obter o caminho XML completo

1

Eu tenho um documento XML grande e complexo em um arquivo. Eu gostaria de fazer uma pesquisa de texto do documento XML e fazer com que ele forneça o caminho XML completo do texto encontrado.

Existe uma funcionalidade semelhante na ferramenta RegEdit para Windows. Se eu pesquisar por "Taxa de clock", posso ver o caminho completo na barra de status na parte inferior da janela.

EugostariadamesmacoisaparaarquivosXML.Porexemplo,seeutiver

<foo><bar><baz>test</baz></bar></foo>

eeuprocuropor"teste", eu devo ver o caminho completo foo\bar\baz

    
por JoelFan 26.06.2015 / 21:35

1 resposta

1

Desculpe, não estou familiarizado com nenhum aplicativo (além do Firebug - retornaremos a isso em breve) que fará isso imediatamente. Se for realmente grande - você pode ter que implementar uma solução personalizada - não deve ser muito complicado usar algum analisador XML / HTML e atravessar os nós até encontrar o texto desejado - em que ponto você usaria alguns recursos internos. função para obter XPath do elemento atual.

Sobre o plug-in do Firefox mencionado - Firebug. Eu não tenho reputação suficiente para mostrar uma foto - mas é um processo simples o suficiente para fazer isso:

  • Abra o arquivo XML no Firefox - provavelmente ele não tem estilo definido, então você verá o familiar:

    This XML file does not appear to have any style information associated with it. The document tree is shown below.

  • pressione F12 para chamar o Firebug, você verá que o arquivo agora é renderizado como um bot como html - com cada elemento sendo inline e, portanto, o texto é "mesclado" em um blob. Isso não importa - a parte importante é que na guia HTML do Firebug você pode ver seu arquivo XML analisado.

  • Na caixa de entrada de pesquisa do Firebug, digite o que você deseja encontrar, ele será focalizado na guia HTML.
  • clique com o botão direito do mouse no elemento desejado na guia HTML e, na parte superior, você verá duas opções de interesse:
    • Copiar XPath
    • Copiar caminho CSS

Você também pode tentar isso com as Ferramentas de desenvolvedor nativas do Firefox:

  • abra o arquivo XML no Firefox e pressione F12 duas vezes para chamar e ocultar o Firebug - não encontrei uma maneira de fazer o arquivo carregar "corretamente", em vez da exibição em árvore - o Firebug faz isso.
  • abra as Ferramentas do desenvolvedor (clique no botão "Abrir menu" - > Desenvolvedor - > Alternar ferramentas)
  • clique no seu arquivo XML (mal) renderizado para se concentrar nele, Ctrl + F para pesquisar uma frase, ela será destacada como em qualquer outra pesquisa
  • clique na ferramenta inspector ("Escolha um elemento da página") e clique no texto realçado
  • clique com o botão direito do mouse no elemento encontrado na guia Inspetor e escolha "Copiar seletor exclusivo", embora no meu Firefox algumas vezes ele retorne "indefinido" em vez do nó superior, mesmo que o XML em questão valide. ..

Para um arquivo de teste:

<?xml version="1.0"?>
<catalog>
   <book id="bk101">
      <author>Gambardella, Matthew</author>
      <title>XML Developer's Guide</title>
      <genre>Computer</genre>
      <price>44.95</price>
      <publish_date>2000-10-01</publish_date>
      <description>An in-depth look at creating applications 
      with XML.</description>
   </book>
</catalog>

Onde nossa frase pesquisada é "Computador" e, portanto, o nó desejado é:

<genre>Computer</genre>

Os resultados são:

  • Firebug "Copiar XPath"

/catalog/book/genre

  • Firebug "Copiar caminho CSS"

catalog book#bk101 genre

  • Ferramentas para desenvolvedores do Firefox "Copiar seletor exclusivo"

#bk101 > genre:nth-child(3)

Minha única preocupação é que você escreveu que seu arquivo é grande. Se é realmente muito grande - bem, você sabe como os navegadores gostam de agir de tempos em tempos. ;)

    
por 26.06.2015 / 23:39

Tags