से मूल्य पढ़ें मैं एक्सएमएल/एचटीएमएल-पार्सिंग के लिए नया हूं। डुप्लिकेट के लिए उचित खोज करने के लिए सही शब्दों को भी न जानें।एचटीएमएल नोड
<body id="s1" style="s1">
<div xml:lang="uk">
<p begin="00:00:00" end="00:00:29">
<span fontFamily="SchoolHouse Cursive B" fontSize="18">I'm great!</span>
</p>
अब मैं 00:00:00
, 00:00:29
और I'm great!
इसे से की जरूरत है:
मैं इस HTML फ़ाइल जो इस तरह दिखता है। मैं इसे इस तरह पढ़ सकता है:
XmlTextReader reader = new XmlTextReader(file);
while (reader.Read())
{
if (reader.NodeType != XmlNodeType.Element)
continue;
if (reader.LocalName != "p")
continue;
var a = reader.GetAttribute(0);
var b = reader.GetAttribute(1);
if (reader.LocalName == "span")
{
XmlDocument doc = new XmlDocument();
doc.Load(reader);
XmlNode elem = doc.DocumentElement.FirstChild;
var c = elem.InnerText;
}
}
मैं चर a
, b
और c
में मान मिलता है। लेकिन एचटीएमएल प्रारूप में थोड़ा बदलाव आया था। अब एचटीएमएल इस तरह दिखता है:
<body id="s1" style="s1">
<div xml:lang="uk">
<p begin="00:00:00" end="00:00:29">I'm great! </p>
इस परिदृश्य मैं कैसे बाहर पार्स करते 00:00:00
, 00:00:29
और I'm great!
में? मैं इस की कोशिश की:
XmlTextReader reader = new XmlTextReader(file);
while (reader.Read())
{
if (reader.NodeType != XmlNodeType.Element)
continue;
if (reader.LocalName != "p")
continue;
var a = reader.GetAttribute(0);
var b = reader.GetAttribute(1);
XmlDocument doc = new XmlDocument();
doc.Load(reader);
XmlNode elem = doc.DocumentElement.FirstChild;
var c = elem.InnerText;
}
लेकिन मैं इस त्रुटि मिलती है: लाइन doc.Load(reader)
पर This document already has a 'DocumentElement' node.
। सही तरीके से कैसे पढ़ा जाए और परेशानी का कारण क्या हो रहा है? मैं .NET 2.0
[html agility pack] (https://htmlagilitypack.codeplex.com/) पर एक नज़र डालें, ऐसा लगता है कि आपको HTML को पार्स करने की आवश्यकता है। – oleksii
एचटीएमएल! = एक्सएमएल .... –
@oleksii क्या मुझे वास्तव में सिस्टम.एक्सएमएल के तहत बहुत कुछ होने पर तीसरे पक्ष के lib का उपयोग करना चाहिए? इसके अलावा मैं एचटीएमएल – nawfal