2013-07-14 8 views
6

हम जानते हैं कि एक्सपीएथ एक्सएमएल पार्सिंग के लिए बनाया गया है। एचटीएमएल 5 के बारे में क्या है क्योंकि यह आवश्यक रूप से एक्सएमएल नियमों का सम्मान नहीं करता है?क्या XPath HTML5 प्रारूप के लिए उपयुक्त है?

उत्तर

6

2 एक्सएमएल हैं: लेक्सिकल एक्सएमएल और पार्सड एक्सएमएल। XPath एक पार्स किए गए XML प्रस्तुति के विरुद्ध काम करता है, जैसे कि डोम या XDM। इसलिए आप लेक्सिकल एचटीएमएल 5 से पार्स किए गए एक्सएमएल बना सकते हैं, इस तरह आप XPath का उपयोग कर एचटीएमएल 5 से पूछ सकते हैं।

1

XPath के लिए एक DOM पूछताछ नहीं है, मार्कअप को पार्स नहीं कर रहा है। एक डीओएम एक HTML दस्तावेज़ से उत्पन्न किया जा सकता है, ताकि आप इसे XPath से पूछ सकें।

+0

एक्सपीएथ, एक्सएमएल पथ भाषा, एक्सएमएल दस्तावेज़ से नोड्स का चयन करने के लिए एक क्वेरी भाषा है। [विकिपीडिया]: तब किसी भी डोम नहीं! – user2567191

+0

तकनीकी रूप से, XPath को किसी DOM के विरुद्ध संचालित करने के लिए परिभाषित नहीं किया गया है, लेकिन अपने डेटा मॉडल के विरुद्ध, जिसे XPath 2.0 में XDM कहा जाता है। एक्सएमएल से एक्सडीएम में परिभाषित एक साधारण मैपिंग है, लेकिन एचटीएमएल 5 से एक्सडीएम तक मैपिंग को परिभाषित करना भी संभव है। इसके लिए कोई मानक मैपिंग परिभाषित नहीं है, लेकिन अधिकांश भाग के लिए यह काफी स्पष्ट है। –

+0

@ माइकलके - आपका क्या मतलब है "काफी स्पष्ट"? एचटीएमएल 5 से एचओएमएल के एचटीएमएल क्रमबद्धता से मैपिंग बिल्कुल स्पष्ट नहीं है। क्या आपका मतलब है कि एचटीएमएल सीरियलाइजेशन से मैपिंग डीओएम 4 एपीआई को एक्सडीएम में "काफी स्पष्ट" है? – Alohci

2

आप उस विशाल चेतावनी के साथ कर सकते हैं जो आपको शायद तब तक नहीं करना चाहिए जब तक कि आपके पास भी न हो।

<div> 
    <p> Here is a paragraph 
    <p> Here is another, is it inside the first, who knows? 
</div> 

अब ज्यादातर एचटीएमएल पारसर्स को स्वीकार करेंगे कि इसके बाद के संस्करण का मतलब यह:

निम्न HTML लो

<div> 
    <p> Here is a paragraph </p> 
    <p> And another, is it inside the first, who knows? </p> 
</div> 

अब, XPath /div/p[2] तथापि "And another..." लौट जाना चाहिए, यह भी उतना ही interpretted किया जा सकता है के रूप में:

<div> 
    <p> Here is a paragraph 
     <p> And another, is it inside the first, who knows? </p> 
    </p> 
</div> 

जहां /div/p[2] कुछ भी नहीं देता है और XPath /div/p/p"And another..." देता है।

एचटीएमएल एक्सएमएल नहीं है और इसे अच्छी तरह से गठित करने की आवश्यकता नहीं है, इसलिए एचटीएमएल के साथ एक्सएमएल प्रौद्योगिकियों का उपयोग करने से मूर्खता हो सकती है। तो जब तक आप उन्हें स्वीकार करते हैं तो आपको ठीक होना चाहिए।

संबंधित मुद्दे