私はXML/HTML解析を初めて行っています。重複を適切に検索するための正しい言葉を知らない。HTMLノードの値を読み取る
私はこのようになります。このHTMLファイルがあります。今、私はそれから00:00:00
、00:00:29
とI'm great!
が必要
<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>
を。私はこのようにそれを読むことができる:
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
の値を取得します。しかし、HTML形式には若干の変更がありました。私は00:00:00
、00:00:29
とI'm great!
を解析んどのようにこのシナリオでは
<body id="s1" style="s1">
<div xml:lang="uk">
<p begin="00:00:00" end="00:00:29">I'm great! </p>
:今、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); 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
HTML!= XML .... –
@oleksii System.Xmlの下にたくさんのサードパーティのlibを使用するべきですか?また、私は何もHTMLに関連する何もしていない – nawfal