Iphone 将块引号中的链接转换为纯文本
所以,我最近问了很多Xpath问题。 对不起,我才刚刚开始使用它,我正在做一个很难的项目。 你看,目前我正在像这样解析HTML(不是复制粘贴,只是一个示例): 把文字放进去。 它工作得很好,尽管它非常令人沮丧。我需要手动检查Iphone 将块引号中的链接转换为纯文本,iphone,objective-c,xpath,Iphone,Objective C,Xpath,所以,我最近问了很多Xpath问题。 对不起,我才刚刚开始使用它,我正在做一个很难的项目。 你看,目前我正在像这样解析HTML(不是复制粘贴,只是一个示例): 把文字放进去。 它工作得很好,尽管它非常令人沮丧。我需要手动检查,然后手动组合br前后的字符串,添加换行符,等等。但它仍然有效。直到文本中出现链接,即。那么代码是这样的: <span id="no153434"></span> <blockquote>Text here.<br/>Text.
,然后手动组合br前后的字符串,添加换行符,等等。但它仍然有效。直到文本中出现链接,即。那么代码是这样的:
<span id="no153434"></span>
<blockquote>Text here.<br/>Text.<br/><font class = "unkfunc"><a href="linkhere" class="link">linkhere</a></font></blockquote>
此处为文本。
文本。
我完全不知道从这里到哪里去,因为链接作为一个完全独立的项目(两次)包含在数组中。至少有了br,我知道应该把它搬到哪里去。经过这么多努力,你真的打算放弃这个项目。你可以使用这个XPath来获取元素中的文本:
//span[以(@id,'no')开头]/如下::*[1][name()='blockquote']//text()
因此,您将收到以下结果:
如果只需要文本节点和br:
//span
[starts-with(@id, 'no')]/
following::*[1][name()='blockquote']
//node()
[ count(.|..//text()) = count(..//text())
or
name()='br'
]
返回
Text here.
<br />
Text.
<br />
linkhere
这里的文本。
文本
链接处
答案是不要将XPath用于此类工作。
使用Objective-C-HTML-Parser可以轻松地工作1000000倍。但是我没有br,所以没有换行符,所以每一行都是分开的。@Darcy,那么你想要得到什么结果呢?老实说,我希望XPath可以将所有内容从一个BLOCKQUOTE集中到同一个字符串中,但这样做会让人非常痛苦。添加链接几乎是不可能的,因为我无法判断链接应该是单独的,还是在另一段文本的末尾或开头。放弃此项目。为什么不1)检索blockquote元素,2)将内部br替换为“\n”,3)获取所有文本节点?
//span
[starts-with(@id, 'no')]/
following::*[1][name()='blockquote']
//node()
[ count(.|..//text()) = count(..//text())
or
name()='br'
]
Text here.
<br />
Text.
<br />
linkhere