Чтение значения из узла HTML

Я новичок в разборе XML/HTML -. Даже не знаю правильных слов, чтобы правильно искать дубликаты.

У меня есть HTML-файл, который выглядит так:

<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!из него. Я мог бы прочитать это так:

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. Теперь HTML выглядит так:

<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;
}

Но я получаю эту ошибку:This document already has a 'DocumentElement' node.в строке doc.Load(reader). Как правильно читать и что мешает? Я использую.NET 2.0

5
задан Philip Daubmeier 1 July 2012 в 13:16
поделиться