私はdocxファイルをxsltを使ってhtmlに変換しています。結果のHTMLにはmargin-top:NaN pt;
のようなスタイルが含まれていますが、スタイル値NaN
はデフォルトではブラウザで無視されますが、このような属性が存在するかどうかを検証してブラウザで表示する前に削除する必要があります...htmlスタイルを検証する必要があります
私を助けてください。事前にお気軽に。
私はdocxファイルをxsltを使ってhtmlに変換しています。結果のHTMLにはmargin-top:NaN pt;
のようなスタイルが含まれていますが、スタイル値NaN
はデフォルトではブラウザで無視されますが、このような属性が存在するかどうかを検証してブラウザで表示する前に削除する必要があります...htmlスタイルを検証する必要があります
私を助けてください。事前にお気軽に。
W3C CSS検証ツールを試しましたか?
あなたがプログラム的にSOAP Webサービスのおかげで、それを使用することができます。
をあなたは 'NaNの' の前には、インラインを追加することを確認する必要がありますスタイル。
など。その後のことができます
<?xml version="1.0"?>
<t>
<Number>adsfdasf</Number>
<Number></Number>
<Number>100</Number>
<Number>1.234234</Number>
</t>
:このXMLを検討
<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良いアプローチ。数値関数の文字列値をテストするのは良いとは思わない... –
@Alejandro。従来の言語を使用する開発者にとっては読みやすいと思います。私は主張しないが。 – Flack
生成された結果ではNaNためCHACKには余りにも後半です。
不要な出力を生成するのを防ぐ必要があります。!この変換は、以下のXML文書に適用され
<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>
:
<t>
<num>helo</num>
<num></num>
<num>100</num>
<num>1.234234</num>
</t>
のみ正しい出力(NOのNaN)である。ここで
はNaNに生成回避例えば、あります生成された:<t>
<span style="margin-top:100"/>
<span style="margin-top:1.234234"/>
</t>
+1 XPath 1.0の「数のインスタンス」表現が改善されました。 –
良い質問、+1。一般的なアプローチと具体的な例については私の答えを見てください。 :) –