So khớp một nút dựa trên giá trị của một anh chị em với XPath


89

Có một tài liệu XML như thế này:

<?xml version="1.0" encoding="UTF-8"?>
<records type="array">
  <record>
    <name>svn</name>
    <record-type>A</record-type>
    <ttl type="integer">86400</ttl>
    <zone-id type="integer">69075</zone-id>
    <aux type="integer">0</aux>
    <id type="integer">xxx</id>
    <active>Y</active>
    <data>xxx.xxx.xxx.xxx</data>
  </record>
  <record>
    <name>domain.tld.</name>
    <record-type>NS</record-type>
    <ttl type="integer">86400</ttl>
    <zone-id type="integer">xxx</zone-id>
    <aux type="integer">0</aux>
    <id type="integer">xxx</id>
    <active>Y</active>
    <data>domain.tld.</data>
  </record>
  <record>
    <name>blog</name>
    <record-type>A</record-type>
    <ttl type="integer">86400</ttl>
    <zone-id type="integer">xxx</zone-id>
    <aux type="integer">0</aux>
    <id type="integer">xxx</id>
    <active>Y</active>
    <data>xxx.xxx.xxx.xxx</data>
  </record>
</records>

Làm thế nào để kết hợp tất cả những người /records/record/namecó như anh chị em /records/record/record-typevới giá trị A?

Câu trả lời:



58

Đáng ngạc nhiên là không có câu trả lời nào cho đến nay cho câu hỏi cũ này cung cấp giải pháp XPath đơn giản nhất .

XPath đơn giản này

/records/record[record-type = "A"]/name

lựa chọn

<name>svn</name>
<name>blog</name>

như yêu cầu.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.