Cari dokumen XML untuk string dan dapatkan path XML lengkap

1

Saya memiliki dokumen XML yang besar dan kompleks dalam sebuah file. Saya ingin melakukan pencarian teks pada dokumen XML dan memilikinya memberi saya path XML penuh dari teks yang ditemukan.

Ada fungsi serupa di alat RegEdit untuk Windows. Jika saya mencari "Clock Rate", saya dapat melihat path lengkap di bilah status di bagian bawah jendela.

Regedit

Saya ingin hal yang sama untuk file XML. Sebagai contoh, jika saya punya

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

dan saya mencari "test", saya akan melihat path lengkap foo\bar\baz

JoelFan
sumber

Jawaban:

1

Maaf, saya tidak terbiasa dengan aplikasi apa pun (selain dari Firebug - kami akan kembali sebentar lagi) yang akan melakukannya di luar kotak. Jika benar-benar besar - Anda mungkin harus mengeluarkan solusi khusus - seharusnya tidak terlalu rumit untuk menggunakan parser XML / HTML dan melintasi node sampai Anda menemukan teks yang diinginkan - pada titik mana Anda akan menggunakan beberapa built in berfungsi untuk mendapatkan XPath dari elemen saat ini.

Tentang plugin Firefox yang disebutkan - Firebug. Saya tidak memiliki reputasi yang cukup untuk menunjukkan foto kepada Anda - tetapi prosesnya cukup sederhana untuk melakukan ini:

  • buka file XML di Firefox - itu mungkin tidak memiliki gaya yang ditentukan, jadi Anda akan melihat yang familier:

    File XML ini tampaknya tidak memiliki informasi gaya apa pun yang terkait   dengan itu. Pohon dokumen ditunjukkan di bawah ini.

  • tekan F12 untuk memanggil Firebug, Anda akan melihat bahwa file tersebut sekarang diberikan bot seperti html - dengan setiap elemen menjadi inline dan dengan demikian teks "digabung" menjadi gumpalan. Itu tidak dapat diimport - bagian yang penting adalah bahwa di tab HTML Firebug Anda dapat melihat file XML Anda diuraikan.

  • di kotak input pencarian Firebug ketik apa yang ingin Anda temukan, itu akan difokuskan pada tab HTML.
  • klik kanan pada elemen yang diinginkan di tab HTML, dan di bagian atas Anda akan melihat dua opsi yang menarik:
    • Salin XPath
    • Salin jalur CSS

Anda juga dapat mencoba ini dengan Alat Pengembang asli Firefox:

  • buka file XML di Firefox dan tekan F12 dua kali untuk memanggil dan menyembunyikan Firebug - Saya belum menemukan cara untuk membuat file memuat "dengan benar", alih-alih tampilan hierarki - Firebug melakukan itu.
  • buka Alat Pengembang (klik tombol "Buka Menu" - & gt; Pengembang - & gt; Alat Toggle)
  • klik pada file XML yang Anda berikan (buruk) untuk fokus, Ctrl + F untuk mencari frase, itu akan disorot seperti halnya dengan pencarian lainnya
  • klik alat inspektur ("Pilih elemen dari halaman") dan klik pada teks yang disorot
  • klik kanan pada elemen yang ditemukan di tab Inspektur, dan pilih "Salin Pemilih Unik" - meskipun di Firefox saya terkadang akan mengembalikan "tidak terdefinisi" alih-alih simpul atas, meskipun XML yang dipermasalahkan memang memvalidasi ...

Untuk file uji:

<?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>

Di mana frasa yang dicari adalah "Komputer", dan simpul keluar yang dicari adalah:

<genre>Computer</genre>

Hasilnya adalah:

  • Firebug "Salin XPath"

/ katalog / buku / genre

  • Firebug "Salin Path CSS"

buku katalog genre # bk101

  • Alat Pengembang Firefox "Copy Unique Selector"

# bk101 & gt; genre: nth-child (3)

Satu-satunya kekhawatiran saya adalah bahwa Anda menulis file Anda besar. Jika itu benar-benar besar - yah, Anda tahu bagaimana browser suka bertindak dari waktu ke waktu. ;)

Xupicor
sumber