我想用带有YQL的HTML页面进行一些XSLT转换。以下行用于获取HTML:
select * from html where url="http://example.com/somepage" and
xpath='//div[@class="article-text"]'
如何将select * from xslt where ...
应用于之前的结果?
答案 0 :(得分:0)
不确定,因为我之前没有使用过YQL,但我想你必须反过来:使用XSLT从HTML中获取结果,然后应用YQL-Query来获取XML结果:
XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:apply-templates select="//div[@class='article-text']" />
</xsl:template>
<xsl:template match="div[@class='article-text']">
<articletext>
<xsl:value-of select="."/>
</articletext>
</xsl:template>
YQL查询:
select * from xslt where stylesheet="url/name-of.xsl" and
url="http://example.com/somepage"
这应该导致
<results>
<articletext>Text of article</articletext>
</results>
由于我不知道YQL但是使用过XSLT / XPath,我只是用Google搜索并找到了这个值得推荐的SO示例:YQL column projection using XPATH。我没有粘贴链接,而是调整了那里提供的示例的XSLT-Part以匹配您的查询。
答案 1 :(得分:-1)
请注意,HTML不是基于XML的语言(尽管是XHTML)。如果您想使用XML工具对HTML进行操作,则需要找到HTML解析器(例如基于Apache Xerces的nekohtml)或使用类似W3C的{{3}将HTML预转换为XHTML。工具。