【发布时间】:2011-04-20 09:23:30
【问题描述】:
我在使用 Xpath 获取没有 <script> 或 <script ... /> 的所有 html 标签时遇到问题。
例如,在这部分 HTML 代码中,我想删除:
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&lang=fr"/>
对于这个代码
<li><!-- Search Google -->
<center>
<form action="http://www.google.fr/cse" id="cse-search-box" target="_blank">
<div>
<input type="hidden" name="cx" value="partner-pub-0959382714089534:mw3ssl65jk1"/>
<input type="hidden" name="ie" value="ISO-8859-1"/>
<input type="text" name="q" size="31"/>
<input type="submit" name="sa" value="Rechercher"/>
</div>
</form>
<script type="text/javascript"
src="http://www.google.com/coop/cse/brand?form=cse-search-box&lang=fr"/>
</center>
<!-- Search Google --></li>
我正在使用 Web-Harvest 生成一个 xml 文件,然后我必须删除一些具体的标签。 我尝试了很多 xpath(我在 html 正文中工作):
//body//*[not(name() = 'script')]//body//*[not(self::script)]//body//*[not(starts-with(name(),'script'))]//body//*[not(contains(name(),'script'))]
但它不起作用。
请注意 //body//*[name() = 'script'] 正在工作,但我想要相反...
你有什么想法吗?
或者更笼统地说,如果您知道如何使用 Xpath 删除所有 <script> <script/> 标签,我也有兴趣:-)
提前致谢。
【问题讨论】:
-
好问题,+1。请参阅我的回答,了解为什么仅使用 XPath 无法实现这一点,以及完整、简短且简单的 XSLT 解决方案。 :)