Rumah >Java >javaTutorial >Bagaimana untuk Mengendalikan Ruang Nama XML dalam Pertanyaan Java XPath?

Bagaimana untuk Mengendalikan Ruang Nama XML dalam Pertanyaan Java XPath?

Patricia Arquette
Patricia Arquetteasal
2024-11-11 18:24:03390semak imbas

How to Handle XML Namespaces in Java XPath Queries?

Pengendalian Ruang Nama XML dalam Pertanyaan Java XPath

Di Java, apabila menanyakan XML dengan XPath, ruang nama boleh memberikan cabaran. Apabila XML tidak mengandungi ruang nama, pertanyaan XPath boleh menjadi mudah, tetapi kehadiran ruang nama memperkenalkan kerumitan.

Kes 1: XML Tanpa Ruang Nama

Untuk XML tanpa ruang nama, XPath pertanyaan menggunakan ruang nama lalai, yang sebenarnya bukan ruang nama. Dalam kes ini, pertanyaan seperti "/buku kerja/helaian/helaian[1]" boleh mendapatkan semula elemen dengan mudah.

Kes 2: XML Dengan Ruang Nama

Walau bagaimanapun, XML dengan ruang nama seperti berikut menambah kerumitan:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
  <sheets>
    <sheet name="Sheet1" sheetId="1" r:id="rId1"/>
  </sheets>
</workbook>

Dalam kes sedemikian, ungkapan XPath "/workbook/sheets/sheet[1]" akan gagal kerana elemen terikat pada "http://schemas. openxmlformats.org/spreadsheetml/2006/main". ruang nama dengan awalan dan gunakannya dalam pertanyaan XPath, menjadikannya lebih mudah dibaca dan diselenggara.

Padanan Generik dengan Predikat: Tanpa pendaftaran ruang nama, ungkapan XPath yang lebih kompleks boleh digunakan :

  1. Padanan Nama Tempatan:
  2. Pilihan yang kurang diutamakan adalah untuk memadankan hanya pada nama tempatan elemen, mengabaikan ruang nama, tetapi ini berisiko memilih unsur yang salah jika perbendaharaan kata bercampur wujud.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ruang Nama XML dalam Pertanyaan Java XPath?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn