XPATH query optimization -
मेरे पास निम्न XML फ़ाइल है
& lt; साइट & gt; & LT; लोग & gt; & Lt; व्यक्ति id = "person0" & gt; & LT; EMAILADDRESS & gt; 0@concordia.ca< / EMAILADDRESS & gt; & Lt; / व्यक्ति & gt; & Lt; व्यक्ति आईडी = "व्यक्ति 1" & gt; & LT; EMAILADDRESS & gt; 1@concordia.ca< / EMAILADDRESS & gt; & Lt; / व्यक्ति & gt; & Lt; व्यक्ति id = "person2" & gt; & LT; EMAILADDRESS & gt; 2@concordia.ca< / EMAILADDRESS & gt; & Lt; / व्यक्ति & gt; & Lt; / लोग & gt; & LT; closed_auctions & gt; & LT; closed_auction & gt; & LT; एनोटेशन & gt; 123 & lt; / एनोटेशन & gt; & Lt; विक्रेता व्यक्ति = "व्यक्ति 1" / & gt; & Lt; / closed_auction & gt; & LT; closed_auction & gt; & LT; एनोटेशन & gt; & lt; / एनोटेशन & gt; & Lt; विक्रेता व्यक्ति = "व्यक्ति 2" / & gt; & Lt; / closed_auction & gt; & LT; closed_auction & gt; & LT; एनोटेशन & gt; & lt; / एनोटेशन & gt; & Lt; विक्रेता व्यक्ति = "व्यक्ति 3" / & gt; & Lt; / closed_auction & gt; & Lt; / closed_auctions & gt; & Lt; / साइट & gt; हमारे पास लोगों की सूची है और नीलामी की एक सूची है, क्योंकि आप देख सकते हैं कि विक्रेता के हिस्से में व्यक्ति आईडी का कोई संदर्भ है
मैं सभी बंद किए गए कार्यों की जांच करना चाहता हूं टैग और अगर इसमें खाली टिप्पणी टैग नहीं है, तो मुझे विक्रेता व्यक्ति आईडी मिलनी होगी और इस विक्रेता (इस व्यक्ति के) का ईमेल पता प्रिंट करना होगा
वर्तमान क्वेरी इस तरह दिखती है: < P> / साइट / लोग / व्यक्ति [@ आईडी = / साइट / बंद_उसेज / बंद_कोड [एनोटेशन / टेक्स्ट ()] / विक्रेता / @ व्यक्ति] / ईमेल एड्रेस / टेक्स्ट ()
यह क्वेरी अच्छी तरह से काम कर रही है छोटे xml फ़ाइल का आकार, लेकिन यह बड़े XML फ़ाइलों के लिए कभी समाप्त नहीं होता है (मुझे लगता है कि समस्या नेस्टेड एक्सपेथ से संबंधित है, लेकिन मुझे कोई अन्य रास्ता नहीं मिल सकता है)
क्या आप कृपया कोई भी सुधार सुझा सकते हैं
धन्यवाद
मैं सभी बंद किए गए संकेतों को देखना चाहता हूं और अगर इसमें बिना खाली टिप्पणी टैग है, तो मुझे विक्रेता व्यक्ति आईडी मिलनी होगी और इस विक्रेता (इस व्यक्ति के) का ईमेल पता प्रिंट करें
वांछित ईमेल एड्रेस तत्वों को एक XSLT रूपांतरण के साथ प्राप्त करने का एक प्रभावी तरीका है - का उपयोग कर: & lt; xsl: स्टाइलशीट संस्करण = "1.0" xmlns: xsl = "http://www.w3.org/1999/XSL/Transform" & gt; & Lt; xsl: आउटपुट ओमिट-एक्सएमएल-घोषणा = "हां" इंडेंट = "हां" / & gt; & Lt; xsl: स्ट्रिप-स्पेस तत्व = "*" / & gt; & Lt; xsl: कुंजी नाम = "kPersonById" मैच = "व्यक्ति" उपयोग = "@ आईडी" / & gt; & Lt; xsl: टेम्पलेट मैच = "/" & gt; & Lt; xsl: copy-of select = "key ('kPersonById', / * / close_auctions / * [स्ट्रिंग (एनोटेशन)] / विक्रेता / @ व्यक्ति) / ईमेल पता" / & gt; & Lt; / XSL: टेम्पलेट & gt; & Lt; / XSL: स्टाइलशीट & gt; जब यह परिवर्तन प्रदान किए गए XML दस्तावेज़ पर लागू होता है: & lt; साइट & gt; & LT; लोग & gt; & Lt; व्यक्ति id = "person0" & gt; & LT; EMAILADDRESS & gt; 0@concordia.ca< / EMAILADDRESS & gt; & Lt; / व्यक्ति & gt; & Lt; व्यक्ति आईडी = "व्यक्ति 1" & gt; & LT; EMAILADDRESS & gt; 1@concordia.ca< / EMAILADDRESS & gt; & Lt; / व्यक्ति & gt; & Lt; व्यक्ति id = "person2" & gt; & LT; EMAILADDRESS & gt; 2@concordia.ca< / EMAILADDRESS & gt; & Lt; / व्यक्ति & gt; & Lt; / लोग & gt; & LT; closed_auctions & gt; & LT; closed_auction & gt; & LT; एनोटेशन & gt; 123 & lt; / एनोटेशन & gt; & Lt; विक्रेता व्यक्ति = "व्यक्ति 1" / & gt; & Lt; / closed_auction & gt; & LT; closed_auction & gt; & LT; एनोटेशन & gt; & lt; / एनोटेशन & gt; & Lt; विक्रेता व्यक्ति = "व्यक्ति 2" / & gt; & Lt; / closed_auction & gt; & LT; closed_auction & gt; & LT; एनोटेशन & gt; & lt; / एनोटेशन & gt; & Lt; विक्रेता व्यक्ति = "व्यक्ति 3" / & gt; & Lt; / closed_auction & gt; & Lt; / closed_auctions & gt; & Lt; / साइट & gt; वांछित, सही परिणाम उत्पन्न होता है: & lt; ईमेल पता <1@concordia.ca< / emailaddress & gt;
Comments
Post a Comment