क्या XPath एक XML के दो उप-भागों में एक विदेशी कुंजी लुकअप कर सकता है?




xslt subtree (3)

कहें कि मेरे पास निम्न XML है ...

<root>
  <base>
    <tent key="1" color="red"/>
    <tent key="2" color="yellow"/>
    <tent key="3" color="blue"/>
  </base>
  <bucket>
    <tent key="1"/>
    <tent key="3"/>
  </bucket>
</root>

... क्या XPath होगा कि "बाल्टी" में "लाल" और "नीला" शामिल होता है?


मुझे लगता है कि यह काम करेगा:

/root/base/tent[/root/bucket/tent/@key = @key ]/@color

यदि आप XSLT का उपयोग कर रहे हैं, तो मैं एक कुंजी सेट करने की अनुशंसा करता हूं:

<xsl:key name="tents" match="base/tent" use="@key" />

आप तब <tent> को <base> भीतर एक विशेष key कर सकते हैं

key('tents', $id)

तो आप कर सकते हैं

key('tents', /root/bucket/tent/@key)/@color

या, यदि $bucket एक विशेष <bucket> तत्व है,

key('tents', $bucket/tent/@key)/@color

जेनीटी में उचित प्रतिक्रिया / कोड सूचीबद्ध है। XML दस्तावेज़ चलने से पहले आपको कुंजी बनाने की आवश्यकता है, फिर उस कुंजी के साथ मैचों को प्रदर्शन करें





xslkey