使用XLINQ解析XHTML文件的库

6
当我意识到我需要为大约50个XHTML页面创建索引时,这些页面可能在将来被添加/删除/重命名/移动,我想,“没问题 - 我将使用LINQ to XML编写一个快速的索引生成器,因为XHTML绝对可以视为XML”。
当然,当我尝试运行它时,我发现XLINQ会因为XHTML实体(如 )而出错。我通过使用以下算法解决了这个问题:
1. 将XHTML文件读入字符串中。 2. 在该字符串上使用正则表达式搜索和替换,以在DOCTYPE中添加一个定义所有相关实体的部分(因为我只关心读取的文件中的“title”属性,而我的输出文件现在不使用任何实体,只是将它们全部设置为空白,但我以后可能会添加实际值)。 3. 将结果解析为XDocument。
为了保存文件,我执行以下操作:
1. 将XDocument保存到字符串中。 2. 剥离实体定义。 3. 保存到文件。
我的问题是,是否有任何库(特别是内置的.Net库)可以将XHTML文件读入XDocuments中?我编写的代码已经达到了目的(生成当前索引并测试生成器程序的其余部分),如果有人已经编写并测试过相同的代码,我真的不想浪费时间测试它。
感谢您的时间,
Ria。
编辑:非常感谢您,这很有效!当我保存XHTML时仍然需要进行一些字符串处理(猜测该库并不是为此而设计的:)),我不得不略微调整Agility Pack的源代码以使其停止在每个样式属性的内部 indiscriminately sticking CDATA 部分(即使已经存在一个)。但这就是开放源代码的意义,对吧?
1个回答

4

1
很遗憾,这个链接现在似乎已经失效了。 - James Sulak
看这里:LINQ和Lambda,第3部分:Html Agility Pack到LINQ到XML转换器http://bit.ly/cYyZgu,长命网页存档机构web.archive.org。 - Nick Martyshchenko
简而言之,本文建议您使用Html Agility Pack,并展示如何将其转换为XDocument - Markus Jarderot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接