用于使用XLINQ解析XHTML文件的库

时间:2009-01-28 09:09:47

标签: .net xml linq xhtml linq-to-xml

当我意识到我需要为大约50个XHTML页面创建索引时,可能会在将来添加/删除/重命名/移动,我认为“没问题 - 我将使用LINQ编写一个快速索引生成器XML,因为XHTML绝对算作XML“。

当然,只要我尝试运行它,我就会发现XLINQ在XHTML实体上窒息的事实,例如& nbsp;。我使用以下算法解决了这个问题:

  1. 将XHTML文件读入字符串。
  2. 使用正则表达式搜索并替换该字符串,将一个部分添加到定义所有相关实体的DOCTYPE中(因为我只关心我读取的文件中的“title”属性,而我的输出文件现在不使用任何实体,它只是将它们全部设置为空白,但我可以稍后添加实际值。
  3. 将结果解析为XDocument。
  4. 为了保存文件,我做了相反的事情:

    1. 将XDocument保存为字符串。
    2. 删除实体定义。
    3. 保存到文件。
    4. 我的问题是,是否有任何库(特别是内置的.Net)我可以使用它将XHTML文件读入XDocuments?我编写的代码已经完成了它的目的(生成当前索引并测试生成器程序的其余部分),如果其他人已经编写并测试了相同的东西,我真的不想花时间测试它。

      非常感谢你们的时间,
      利雅。

      编辑:非常感谢你;这个有效!当我保存XHTML时,我仍然需要进行一些字符串处理(猜测库并不是真的为此而做:)并且我不得不稍微调整Agility Pack的来源以使其停止不加选择地粘贴CDATA部分围绕每个样式属性的内部(即使已经存在一个),但这是开源的重点,对吗?

1 个答案:

答案 0 :(得分:4)