0

この特定の問題に答える既存の投稿は見つかりませんでした。うまくいけば、XSLに精通している人にとっては簡単な答えです。部品検査ソフトウェアシステムによって生成されたXMLファイルに適用されるXSLスタイルシートがあり、結果のHTMLコードを読み取ります。

異なる部品番号ごとの公差を含む外部XMLファイルを追加したいと思います。したがって、XSLシートでは、ドキュメント名またはソースXMLファイルの要素の名前で定義されたドキュメント内の要素のいずれかでdocument()参照を使用する必要があると想像していました。うまくいけば、含まれているコードは私がやろうとしていることを示しています。明らかに、現状では機能せず、ファイル全体のスニペットにすぎません。

私が学ぶことができる何かへの助けやリンクをありがとう。

<xsl:variable name="pname">
    <xsl:value-of select="//NAME/."/>.xml
</xsl:variable>

<xsl:template match="TUBE_LRA_ERRORS">
<table border="0" style="font-size:18pt">
    <tr><th><xsl:copy-of select="//NAME/."/></th></tr>
    <tr><th><xsl:value-of select="//REPORT/REPORT_TIME"/></th></tr>
    <tr><th>LRA Errors</th></tr>
</table>
<table border="1" style="font-size:26pt">
<tr align="center" bgcolor="#cccccc">
    <td>#</td><td>L</td><td>R</td><td>A</td>
</tr>
<xsl:for-each select="ERROR">
    <tr>
        <td><xsl:value-of select="position()"/></td>
        <xsl:choose>
            <xsl:when test="X > document('$pname')/l/hi">
                <td bgcolor="00FFFF" style="font-weight:600">
            <xsl:value-of select="X"/></td>
            </xsl:when>
            <xsl:when test="X > document('tolerances.xml')/l/lo">
                <td bgcolor="ffffff" style="font-weight:200">
                    <xsl:value-of select="X"/></td>
            </xsl:when>
        <xsl:otherwise>
4

1 に答える 1

0

pnameでは、変数には公差ファイルの名前が付けられ、そこから値を確認したいということを念頭に置いていますか? そうすることが可能であるべきです。

これは機能しません:

<xsl:when test="X > document('$pname')/l/hi">
   <td bgcolor="00FFFF" style="font-weight:600">
        <xsl:value-of select="X"/>
   </td>
</xsl:when>

"$pname" が引用符で囲まれているため、"$pname" というファイルが検索されます。ただし、これにより、名前が の値であるファイルがロードされます$pname( を囲む単一引用符を削除したことに注意してください$pname:

<xsl:when test="X > document($pname)/l/hi">
   <td bgcolor="00FFFF" style="font-weight:600">
        <xsl:value-of select="X"/>
   </td>
</xsl:when>

$pnameまたは、名前に".xml"の値を加えたファイルを使用する場合は、次のようにします。

<xsl:when test="X > document(concat($pname, '.xml'))/l/hi">
   <td bgcolor="00FFFF" style="font-weight:600">
        <xsl:value-of select="X"/>
   </td>
</xsl:when>

ここに論理エラーがあると思います:

<xsl:when test="X > document('tolerances.xml')/l/lo">
  <td bgcolor="ffffff" style="font-weight:200">
    <xsl:value-of select="X"/>
  </td>
</xsl:when>

が値より小さいX場合に特別なフォーマットを表示したいと思います。その場合、次のものが必要になります。lo

<xsl:when test="X &lt; document('tolerances.xml')/l/lo">
于 2013-03-18T13:01:22.960 に答える