jsoup

2012-07-08 17 views
6

में तत्वों मैं स्रोत HTML में वापस विशिष्ट चरित्र ऑफसेट करने के लिए तत्वों jsoup मैप करने की आवश्यकता के लिए चरित्र ऑफसेट प्राप्त करें। दूसरे शब्दों में, इस तरह दिखता है कि अगर मैं HTML है:jsoup

Hello <br/> World 

मैं जानना चाहता हूँ कि "हैलो" ऑफसेट 0 पर शुरू होता है और 6 अक्षर, <br/> शुरू होता है की लंबाई है 6 ऑफसेट और की लंबाई है जरूरत 5 अक्षर, आदि ..

मैं तत्व जावाडोक है कि यह जानकारी देता है में एक गेटर नहीं पा सके। क्या इसे पुनर्प्राप्त किया जा सकता है?

+0

आप इस कि अपनी खुद की व्याकरण लिखित रूप में परिणाम नहीं के लिए एक समाधान मिला? – elaRosca

+0

नहीं। मैं अभी भी jflex का उपयोग कर रहा हूं। – ccleve

उत्तर

0

मुझे विश्वास नहीं है कि Jsoup में यह कार्यक्षमता है। यह प्रश्न एचटीएमएल पार्सिंग की तुलना में व्याख्यात्मक विश्लेषण के करीब लगता है।

मैं एक व्याकरण लिखते थे, और फिर उस व्याकरण जो एचटीएमएल tokenize होता है, और ऑफसेट है कि आप देख रहे हैं की आपूर्ति के खिलाफ एक lexer लिखें।

पहले, सत्यापित करें कि यह मान्य HTML है Jsoup साथ दस्तावेज़ को पार्स।

फिर, lexically एक व्याकरण के खिलाफ दस्तावेज का विश्लेषण। एक व्याकरण लग सकता है जैसे:

Document := {optional-opening-tag} | {literal} {optional-opening-tag} | {optional-closing-tag} 

optional-opening-tag := ["<" {literal} ">" {optional-opening-tag}|{literal} ] | "" 

optional-closing-tag := "</ {literal} ">" | "" 

literal := any string of characters not beginning with whitespace, or containing "<" 

सम्मिलित प्रत्येक टोकन है कि आप एक वस्तु जो टोकन, पहले वर्ण के सूचकांक, और लंबाई संग्रहीत करता है में पाते हैं।

+0

हां, यह सही जवाब है। मैंने वास्तव में जेएफएक्स का उपयोग कर एक लेक्सर लिखा है, और यह काम करता है, और मैं अभी भी इसका उपयोग कर रहा हूं, लेकिन मैं इसे बनाए रखने की बजाय नहीं रखूंगा। मैं कोड से छुटकारा पाने की कोशिश कर रहा था। – ccleve

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