我需要僅使用xslt 1.0壓縮XML文檔中缺失的數據,重新排序它以使項目的索引比任何索引大1後索引缺失。 (很難連貫解釋,我承認)。重新編號,使用xslt 1.0重新排序XML數據
我試過某些算法,但是當然沒有一個會根據輸出發生變化而工作,並且不會反覆地持續運行腳本,直到輸出不再發生變化。一個簡化的示例:
輸入:
<Set Id="gump">
<!-- Missing 2,3, must renumber 4->2 and 5->3 -->
<parameter fieldId="primary.1.label" value="Was 1"/>
<parameter fieldId="primary.4.label" value="Was 4"/>
<parameter fieldId="primary.4.tag" value="Was 4"/>
<parameter fieldId="primary.5.label" value="Was 5"/>
<parameter fieldId="primary.5.somefld" value="Was 5"/>
</Set>
嵌入在fieldId屬性的索引必須是順序輸出,1,2,3;不是1,4,5,例如, - 「primary.4.label」必須是輸出中的「primary.2.label」等。
在輸入樣本中沒有索引爲2或3的項目。這是必須後續項目的索引大於缺失索引。因此所有指數4都變成指數2,所有指數5變成指數3。
索引集之間的子字段(「標籤」,「標籤」,「somefld」)可能不同。有些可能出現在一組中,而另一組缺席。
輸出:
<Set Id="gump">
<!-- Desired output -->
<parameter fieldId="primary.1.label" value="Was 1"/>
<parameter fieldId="primary.2.label" value="Was 4"/>
<parameter fieldId="primary.2.tag" value="Was 4"/>
<parameter fieldId="primary.3.label" value="Was 5"/>
<parameter fieldId="primary.3.somefld" value="Was 5"/>
</Set>
我寧願一個新手到XSLT,所以我用鑰匙掙扎着,等
您的問題沒有明確定義。目前尚不清楚給出的是什麼,僅僅是一個例子。通常,您可以使用'position()'函數或'xsl:number'元素來編號節點 –