Elm:
HTML विश्लेषण

कैसे:

Elm में HTML को सीधे पार्स करने के लिए JavaScript या Python में मौजूद लाइब्रेरीज़ के समान एक बिल्ट-इन लाइब्रेरी नहीं है, क्योंकि इसका जोर टाइप सुरक्षा और रनटाइम त्रुटियों से बचने पर है। हालाँकि, आप Http अनुरोधों का उपयोग करके सामग्री प्राप्त कर सकते हैं और फिर जरूरी जानकारी निकालने के लिए नियमित एक्सप्रेशन्स या सर्वर-साइड प्रोसेसिंग का उपयोग कर सकते हैं। अधिक जटिल HTML पार्सिंग के लिए, एक समर्पित बैकएन्ड सेवा का उपयोग करने का आम तरीका है जो HTML को पार्स करता है और डेटा को Elm द्वारा सीधे काम में लिये जाने वाले प्रारूप जैसे JSON में लौटाता है।

HTML सामग्री प्राप्त करने का एक उदाहरण यहाँ है (मान लिया गया है कि सर्वर प्रतिक्रिया एक स्वच्छ प्रारूप में होती है या एक विशेष टैग सामग्री):

import Browser
import Html exposing (Html, text)
import Http

type alias Model =
    { content : String }

initialModel : Model
initialModel =
    { content = "" }

type Msg
    = Fetch
    | ReceiveContent String

update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
    case msg of
        Fetch ->
            ( model
            , Http.get
                { url = "https://example.com"
                , expect = Http.expectString ReceiveContent
                }
            )

        ReceiveContent content ->
            ( { model | content = content }
            , Cmd.none
            )

view : Model -> Html Msg
view model =
    text model.content

-- मान लिया गया है कि मुख्य फ़ंक्शन और ग्राही परिभाषाएं Elm की मानक एप्लिकेशन संरचना का पालन करती हैं।

प्रतिक्रिया को संसाधित करने और विशेष तत्वों या डेटा को वास्तव में पार्स करने के लिए, आप विचार कर सकते हैं कि HTML सामग्री को एक सर्वर एंडपॉइंट पर भेजें जिसे आप नियंत्रित करते हैं, जहाँ आप JavaScript (Cheerio, Jsdom) या Python (BeautifulSoup, lxml) जैसी भाषाओं में उपलब्ध लाइब्रेरीज़ का उपयोग करके पार्सिंग कर सकते हैं, और फिर संरचित डेटा (जैसे JSON) को वापस अपने Elm एप्लिकेशन में लौटा सकते हैं।

याद रखें, भाषा प्रतिबंधों और सामग्री प्राप्ति और सामग्री प्रोसेसिंग के बीच स्पष्ट विभाजन को प्रोत्साहन देने की दर्शन के कारण, क्लाइंट-साइड Elm कोड में सीधे HTML पार्स करना विशिष्ट पैटर्न नहीं है। Elm आर्किटेक्चर JSON जैसे सुरक्षित, अधिक प्रेडिक्टेबल प्रारूप में डेटा को प्रोसेस करने की ओर झुकाव रखता है।