私はこの作業に大きな問題があり、ソートの仕方を理解することはできません。XSLT外部文書の情報で表をソートする
XSLTで.XSLをインポートするテーブルをソートしようとしています。この.XSLには、2つの外部.XSLが参照されています。出力はHTMLでなければなりません。
mainXSL.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" media-type="image/svg" indent="yes" encoding="UTF-8"/>
<xsl:variable name="fileA" select="document(/importFiles/docs/@fileA)" />
<xsl:variable name="fileB" select="document(/importFiles/docs/@fileB)" />
<xsl:template match="/">
<html>
<head>
<title>
Task1
</title>
</head>
<body>
<table align="center" border="1">
<tr>
<th>column_1</th>
<th>column_2</th>
</tr>
<xsl:for-each select="$fileA/letters/letter">
<xsl:sort select="." order="ascending"/>
<xsl:variable name="current_node" select="position()"/>
<tr>
<td class="_fileA"><xsl:value-of select="." /></td>
<td class="_fileB"><xsl:value-of select="$fileB//animal[$current_node]" /></td>
</tr>
</xsl:for-each>
</body>
</html>
</xsl:template>
INDEX.XML
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="mainXSL.xsl"?>
<importFiles>
<docs fileA = "fileA.xml" />
<docs fileB = "fileB.xml" />
</importFiles>
fileA.xml
<?xml version="1.0" encoding="UTF-8"?>
<letters>
<letter>A</letter>
<letter>C</letter>
<letter>B</letter>
<letter>E</letter>
<letter>D</letter>
</letters>
fileB.xml
<?xml version="1.0" encoding="UTF-8"?>
<animals>
<animal>dog</animal>
<animal>horse</animal>
<animal>cow</animal>
<animal>snake</animal>
<animal>spider</animal>
</animals>
だからfileA.xml内の文字は、私は今、何を得るfileB.xml
の同じ行上の動物に貼られた表である。
A - 犬
B - 馬
C - 牛
D - 蛇
E - クモ
は何私が取得したいことは次のとおりです。
A - 犬
B - 牛
C - 馬
D - クモ
E - 蛇
私ができますfor-eachループの後に、列を一緒に並べ替える方法を見つけ出します(column_1のみ)。 同様の問題をここで見つけようとしましたが、無駄です。 前に同様の質問を投稿して正解を得ましたが、数字を手紙に編集するのを忘れました。数値を指定すると、position()を使用すると簡単になります。この場合、position()はインデックスとして使用できますが、それは長い時間です。私はこれにはもっと簡単な解決策があると思います。
あなた卿を使用し、真の救世主です!とても感謝しております! –