我将使用xslt将docx文件转换为html。我的结果HTML包含像margin-top:NaN pt;
风格,风格值NaN
默认情况下在浏览器中被忽略。但我必须验证这些属性的存在,并在浏览器中查看之前必须删除...需要验证html样式
请帮我.. 。提前感谢...
我将使用xslt将docx文件转换为html。我的结果HTML包含像margin-top:NaN pt;
风格,风格值NaN
默认情况下在浏览器中被忽略。但我必须验证这些属性的存在,并在浏览器中查看之前必须删除...需要验证html样式
请帮我.. 。提前感谢...
您是否尝试过W3C CSS验证器?
您可以通过编程使用它得益于一个SOAP Web服务:
您应该检查 '男' 以前加入内嵌样式。
E.g.考虑这个XML:
<?xml version="1.0"?>
<t>
<Number>adsfdasf</Number>
<Number></Number>
<Number>100</Number>
<Number>1.234234</Number>
</t>
然后,您可以:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Number">
<xsl:value-of select="concat(., ' : ')"/>
<xsl:if test="not(string(number()) = 'NaN')">valid</xsl:if>
<xsl:if test="string(number()) = 'NaN'">invalid</xsl:if>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
结果:
adsfdasf : invalid
: invalid
100 : valid
1.234234 : valid
+1好方法。我不认为测试数字函数的字符串值是好的... – 2011-02-09 16:49:22
@Alejandro。我认为它对于传统语言开发者来说更具可读性。虽然我不坚持。 – Flack 2011-02-09 17:57:02
实在是太后期在生成的结果焯芬楠。
应该防止产生不必要的输出!
下面是一个例子,也避免了产生的NaN:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="num[number(.) = number(.)]">
<span style="margin-top:{.}"/>
</xsl:template>
<xsl:template match="num[not(number(.) = number(.))]"/>
</xsl:stylesheet>
当在下面的XML文档施加这种转变:
<t>
<num>helo</num>
<num></num>
<num>100</num>
<num>1.234234</num>
</t>
唯一正确的输出(无NAN)是生产:
<t>
<span style="margin-top:100"/>
<span style="margin-top:1.234234"/>
</t>
好问题,+1。查看我的答案,了解一般方法和具体示例。 :) – 2011-02-09 14:12:46