代码之家  ›  专栏  ›  技术社区  ›  jturnbull

从HTML文件中间的设置点中提取上下文

  •  1
  • jturnbull  · 技术社区  · 14 年前

    我有一些HTML,我在某个点提取了一个片段(内联图像),但我想展示一下这个图像的上下文。

    我使用PHP,我知道SimfOnand WordPress都提供了一些功能来处理当你在一些HTML中间截取文本时发生的事情(它关闭所有打开的标签),但是在另一个方向上没有处理代码片段。

    因此,在以下情况下:

     'Snippet of text and a <a href="#moo">link right her'
    

    我可以使用上述功能进行修复,但是:

    'nk right here</a> and then more text after the link.'
    

    我考虑过这样一种可能性,即即使是标记结束片段也可能是错误的方式,我应该使用Xpath来解析HTML。然而,我找不到任何使用xpath创建这样的代码片段的例子或提及。

    更新:

    所以我现在的想法是:

    1. 向上移动解析树,直到找到包含所有内容的标记(在我的例子中,div class=post)。在这个div之前的最后一个节点是起点(很可能是一个p标记)。

    2. 从这里,获取上一个兄弟(应该再次是p标记)。

    3. 下降到此节点并获取最后一个子节点,将文本内容保存为临时字符串。继续回顾这些孩子,直到我们得到足够的片段。

    这仍然不理想,因为我不确定我需要退多远才能获得文本内容。

    有人知道这个想法在哪里得到了实施吗?

    1 回复  |  直到 9 年前
        1
  •  0
  •   outis    14 年前

    这不是一个完整的答案,但您可以使用xpath查询来获取感兴趣的节点,然后使用nextSibling和previousSibling属性(以扩展支持的任何形式)来获取节点的上下文。