2010-01-31 100 views
1

我有一些HTML,并且我在某个点(内嵌图像)中提取了一个片段,但我想在此图像上显示一些上下文。从HTML文件中间的设置点提取上下文

我正在使用PHP,并且我知道Symfony和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 =交在我的情况) 。我在这个div之前的最后一个节点是起点(最可能是一个p标签)。

  2. 从这里,得到以前的兄弟姐妹(这应该是一个p标签了)。

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

这仍然不是最理想的,因为我不知道要走多远才能获得文本内容。

有没有人知道这个想法的实现在任何地方?

+0

你是如何提取摘录的? – outis 2010-01-31 22:57:49

+0

使用xpath我得到所有图像,然后想要图像前后的文本片段。 – jturnbull 2010-02-01 20:40:12

回答

0

这不是一个完整的答案,但你可以使用XPath查询得到公正的节点(S)你有兴趣,然后我们nextSibling和previousSibling属性(无论以何种形式通过扩展支持)来获取节点的上下文。

+0

感谢您的回复。这是我目前的想法,除了HTML的“树”性质使它更复杂,因为我的图像经常没有兄弟姐妹 - 它是父对象,它有x个孩子...... – jturnbull 2010-02-01 20:49:37