我將使用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