示例html:
<html>
<head>
<title>My Headline</title>
<meta name="targetUrl" value="xyz.html?sym=abc"/>
<meta name="summary" value="A & B"/>
</head>
<body>
abc abc, pqr, xyz, rst tsd, prrrr, qqqqqqq, oooooo, opop opop, rtrttrt rtrtrtrt
</body>
</html>
这只是一个示例html,它可能是任何随机的特殊字符,我无法访问htmls。 我尝试使用以下xsl,但它不起作用
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" indent="no" omit-xml-declaration="yes"/>
<xsl:strip-space elements="xsl:text"/>
<xsl:variable name="delimiter" select="'|'"/>
<xsl:variable name="fieldNames" select="'yes'"/>
<xsl:template match="/">
<xsl:if test="$fieldNames = 'yes'">
<xsl:text>title</xsl:text>
<xsl:value-of select="$delimiter"/>
<xsl:text>targetURL</xsl:text>
<xsl:value-of select="$delimiter"/>
<xsl:text>summary-r</xsl:text>
<xsl:value-of select="$delimiter"/>
<xsl:text>body</xsl:text>
<xsl:text>
</xsl:text>
</xsl:if>
<xsl:value-of select="normalize-space(html/head/title)" disable-output-escaping="yes" />
<xsl:value-of select="$delimiter"/>
<xsl:value-of select="html/head/meta[@name='targetURL']/@value" disable-output-escaping="yes" />
<xsl:value-of select="$delimiter"/>
<xsl:value-of select="html/head/meta[@name='summary-r']/@value" disable-output-escaping="yes" />
<xsl:value-of select="$delimiter"/>
<xsl:value-of select="normalize-space(html/body)" disable-output-escaping="yes" />
</xsl:template>
</xsl:stylesheet>
感谢任何帮助。
答案 0 :(得分:0)
XSLT只能用于XML输入,而不能用于HTML。因此,在进行XSLT转换之前,需要先运行HTML到XML的转换。有很多工具可以做到这一点,例如John Cowan的TagSoup。