我想使用C#将后续字符串解析为XML

时间:2014-02-17 07:28:47

标签: c# xml parsing

<html>
<font color=#FF0000>Gaurang</font>
<font color=#00FF00>Bhavesh</font>
<font color=#FF0000>Bhupesh</font>
<font color=#FF0000>AAditya</font>
</html>

我想在C#中将上面的字符串解析为xml。 当我尝试它时,给出错误,例如'#'是一个意外的令牌。预期的标记是“”或“”。

2 个答案:

答案 0 :(得分:3)

它似乎是一个html而不是xml,所以使用HtmlAgilityPack

var doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(filename);
var colors = doc.DocumentNode.Descendants("font")
             .ToDictionary(e => e.InnerText, e => e.Attributes["color"].Value);


foreach(var color in colors)
{
    Console.WriteLine("{0}:{1}", color.Key, color.Value);
}

答案 1 :(得分:0)

您发布的示例数据不是有效的XML。 HTML和XML之间存在差异,其中之一是大多数Web浏览器不需要围绕值的引号,但大多数XML解析器都需要。所以以下是有效的XML:

<font color="#FF0000">Gaurang</font>

但这不是......

<font color=#FF0000>Gaurang</font>