xslt は私の最高のスキルの 1 つではないと言わざるを得ません :( ノードをさまざまなグループにソートすることについて多くのことを読み、さまざまな問題をさまざまなグループに分類することができました。同じオブジェクトを再びグループに入れます。
私のxml構造は次のようになります
<issues>
<issue status="open" type="Bug">
<fix_versions>6.14.0</fix_versions>
<title>issue1</title>
<description>Description</description>
</issue>
<issue status="open" type="Feature">
<fix_versions>6.13.0</fix_versions>
<title>issue2</title>
<description>Description</description>
</issue>
<issue status="open" type="Improvement">
<fix_versions>6.14.0</fix_versions>
<title>issue3</title>
<description>Description</description>
</issue>
私が欲しいのは、次のようなhtml構造を持つことです:
<div class="version">
<a>6.14.0</a>
<div class="issues">
<div class="Bugs">
<a href="">issue1</a>
</div>
<div class="Improvements">
<a href="">issue3</a>
</div>
</div>
</div>
<div class="version">
<a>6.13.0</a>
<div class="issues">
<div class="features">
<a href="">issue2</a>
</div>
</div>
</div>
しかし、私が得るのは次のとおりです。
<div class="version">
<a>6.14.0</a>
<div class="issues">
<a href="">issue1</a>
<a href="">issue3</a>
</div>
</div>
<div class="version">
<a>6.13.0</a>
<div class="issues">
<a href="">issue2</a>
</div>
</div>
これはこれまでの私のxsltです:
<xsl:for-each select="//issue[generate-id(.)=generate-id(key('versions', fix_versions)[1])]">
<xsl:sort select="fix_versions" order="descending"/>
<div class="release">
<a href="" class="version"><xsl:value-of select="fix_versions"/></a>
<div class="version" style="display:none;">
<xsl:for-each select="key('versions', fix_versions)">
<xsl:if test="@type='Bug'">
<xsl:value-of select="title"/>
</xsl:if>
</xsl:for-each>
</div>
</div>
</xsl:for-each>
「」内の問題をソートして、それらを別のdivに配置する可能性が必要です。私にはそれで十分でしょう。
何か提案はありますか?たくさん試してみましたが、何もうまくいきません:(どうもありがとう
編集2:
xsl 属性と php + xsl のドル記号に問題があります :/ 構造は次のようになります
<?php
function releaseNotes() {
$xsl = <<<EOB
<xsl:attribute name="version"><xsl:value-of select="fix_versions"/></xsl:attribute>
<xsl:value-of select="$version"/>
EOB;
$xmldoc = new DOMDocument('1.0', 'utf-8');
$xmldoc->load($source);
$xsldoc = DOMDocument::loadXML($xsl);
$proc = new XSLTProcessor();
$proc->importStyleSheet($xsldoc);
return $proc->transformToXML($xmldoc);
}
?>
これは何だろう?