【问题标题】:HTML Agility Pack Parsing With Upper & Lower Case Tags?使用大小写标签解析 HTML 敏捷包?
【发布时间】:2011-04-25 07:44:02
【问题描述】:

我使用 HTML Agility Pack 效果很好,我对它印象深刻 - 但是,我选择的内容是这样的

doc.DocumentNode.SelectSingleNode("//body").InnerHtml

我如何处理以下情况,不同的文件?

<body>
<Body>
<BODY>

我上面的代码是否只能获得小写版本?

【问题讨论】:

  • 你试过什么?看起来可以在几分钟内完成测试。

标签: c# html html-parsing html-agility-pack


【解决方案1】:

Html Agility Pack 以不区分大小写的方式处理 HTML。这意味着它将以相同的方式解析 BODY、Body 和body。这是设计使然,因为 HTML 不区分大小写(XHTML 是)。

也就是说,当你使用它的 XPATH 特性时,你必须使用小写的标签。这意味着"//body" 表达式将匹配 BODY、Body 和 body,而“//BODY”将不匹配任何内容。

【讨论】:

  • @Mark - 我实际上是作者 :-) 我这样做是因为 XPATH 是区分大小写的(而且翻译功能太不实用了!)而 HTML 不是。我没有看到任何其他好的解决方案?
  • 我不知道...如果文档是 HTML,则将所有内容都小写?但是,如果它是 XHTML 或 XML,就留下它?这没什么大不了的,我猜只是需要注意的事情:)
  • @Mark - Html Agility Pack 是为 HTML 而设计的,而不是为 X(HT)ML 设计的,您可以在其中安全地使用标准 .NET 类。所以对于 HTML,是的,它完全是“小写”的一切。
  • Simon 感谢您的澄清,不得不说它是一个优秀的图书馆 - 顶级工作:)
猜你喜欢
  • 2012-01-19
  • 1970-01-01
  • 2012-08-23
  • 2010-10-13
  • 2010-10-27
  • 1970-01-01
  • 1970-01-01
  • 2013-07-20
  • 2018-10-07
相关资源
最近更新 更多