XSLTを使用してHTMLを作成するXMLファイルの書式設定に問題があります。私は一般的に、XML要素に含まれる各属性の値を順番に取得したいと考えています。 これはXSLTにハードコードされています。私のXMLファイルが変更されると、XSLTはその仕事をしません。 私は<xsl:value-of select="@(name(@*[1]))" />
のようなものを使って要素の最初の属性値を取得しようとしましたが、機能しません。XMLファイルから属性値を順番に取得するXSLT
どうすればよいですか?
ありがとうございます。 @TimCは私にはない答えとして、 OK:
<testsuites disabled="0" errors="0" failures="1" passes="16" skipped="0" tests="17" time="1">
<testsuite disabled="0" id="0" name="Bok" time="1" tests="4">
<testcase classname="XYZ" name="description" Plate="blah" Distance="A" Side="L" Angle="15" failure="PASSED">
<system-out/>
<system-err/>
</testcase>
<testcase classname="XYZ" name="description" Plate="blah" Distance="A" Side="L" Angle="60" failure="PASSED">
<system-out/>
<system-err/>
</testcase>
<testcase classname="XYZ" name="description" Plate="blah" Distance="A" Side="L" Angle="30" failure="PASSED">
<system-out/>
<system-err/>
</testcase>
<testcase classname="XYZ" name="description" Plate="blah" Distance="A" Side="L" Angle="60" failure="PASSED">
<system-out/>
<system-err/>
</testcase>
</testsuite>
... and so one
編集:ここでは
<xsl:for-each select="testsuites/testsuite/testcase">
<xsl:if test="@failure='PASSED'">
<tr style="color:green;font-weight:bold">
<td style="text-align:center">
<xsl:value-of select="@classname" />
</td>
<td style="text-align:center">
<xsl:value-of select="@name" />
</td>
<td style="text-align:center">
<xsl:value-of select="@Plate" />
</td>
<td style="text-align:center">
<xsl:value-of select="@Distance" />
</td>
<td style="text-align:center">
<xsl:value-of select="@Side" />
</td>
<td style="text-align:center">
<xsl:value-of select="@Angle" />
</td>
<td style="text-align:center">
<xsl:value-of select="@failure" />
</td>
<td style="text-align:center">
<xsl:value-of select="failure/@message" />
</td>
</tr>
</xsl:if>
... and so one
私のXMLファイルの一部である:ここで
は、それが現時点でどのように見えるかです@(name(@*[1]))
に角括弧と名前が必要です。それは私にとっては大丈夫です。
さて問題はのは、7を言わせするには、1から反復要素になりますループを作る方法で、私はこのような何か意味:コメントで述べたように
<xsl:for-each select="$var=1 to 7">
<td style="text-align:center">
<xsl:value-of select="@*[$var]" />
</td>
</xsl:for-each>
サンプルの失敗は最初の属性ではありませんが、実際には失敗はなく失敗です。 – derloopkat
@derloopkat属性は、とにかく順序付けされていないので、ソースコード中の順序は何も意味しません。 – Tomalak
あなたは最初の属性値がほしいと言ったのです – derloopkat