나는 다음과 같은 XML이 :XSLT 정렬
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="no" indent="yes" media-type="text/html"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="nodeLevel1">
<xsl:copy>
<xsl:apply-templates select="node()|@*">
<xsl:sort select="rank" data-type="number" />
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
결과는 다음과 같습니다 :
<?xml version="1.0" encoding="UTF-8"?>
<root>
<nodeLevel1>
<nodeType1>node type 1</nodeType1>
<nodeType3>node type 3</nodeType3>
<nodeType2>
<rank>1</rank>
</nodeType2>
<nodeType2>
<rank>2</rank>
</nodeType2>
<nodeType2>
<rank>3</rank>
</nodeType2>
<nodeType2>
<rank>4</rank>
</nodeType2>
</nodeLevel1>
</root>
문제
<root>
<nodeLevel1>
<nodeType1>node type 1</nodeType1>
<nodeType2><rank>3</rank></nodeType2>
<nodeType2><rank>1</rank></nodeType2>
<nodeType2><rank>4</rank></nodeType2>
<nodeType2><rank>2</rank></nodeType2>
<nodeType3>node type 3</nodeType3>
</nodeLevel1>
</root>
나는 다음과 같은 XSLT를 사용하여이 XML을 정렬 모든 "nodeType2"가 XML의 올바른 위치에 있지 않다는 것입니다. "nodeType2"앞에 노드 "nodeType1"을 유지하고 "nodeType2"다음에 노드 "nodeType3"을 유지하려면 어떻게해야합니까?
그래서, 결과는 수 갈까요 (그것이 무엇이든로 이름이 변경 될 수 있기 때문에이 솔루션은 "nodeType1"또는 "nodeType3"요소 이름을 사용해서는 안) :
<?xml version="1.0" encoding="UTF-8"?>
<root>
<nodeLevel1>
<nodeType1>node type 1</nodeType1>
<nodeType2>
<rank>1</rank>
</nodeType2>
<nodeType2>
<rank>2</rank>
</nodeType2>
<nodeType2>
<rank>3</rank>
</nodeType2>
<nodeType2>
<rank>4</rank>
</nodeType2>
<nodeType3>node type 3</nodeType3>
</nodeLevel1>
</root>
감사를 도와. 이 작업을 수행하는