私は持っている:
XML
<TestCases>
<TestCase>
<TestCaseElement>
<Name><![CDATA[Start]]></Name>
<Role><![CDATA[TESTSTEP]]></Role>
</TestCaseElement>
<TestCaseElement>
<Name><![CDATA[Content]]></Name>
<Role><![CDATA[TESTSTEP]]></Role>
<Code>
<Line><![CDATA[some Content]></Line>
<Line><![CDATA[some Content]></Line>
</Code>
</TestCaseElement>
<TestCaseElement>
<Name><![CDATA[End]]></Name>
<Role><![CDATA[TESTSTEP]]></Role>
</TestCaseElement>
**n of these Start-Content-Stop Triplets are in the XML Document**
</TestCase>
</TestCases>
この要素を XSLT で「グループ化」したいと考えています。
各グループはStartで始まり、 Endで終わる必要があります 。 私の最初のアイデアは、このソリューションでそれを行うことでした:
これは:
<xsl:for-each select="/TestCases/TestCase/TestCaseElement[../TestCaseElement[Name='Step-Start'] << . and . >> ../TestCaseElement[Name='Step-End']]">
しかし、キーおよび/または生成IDでグループ化し、フォローシブリングと先行シブリングを使用する必要があると思います
私の希望する出力: 開始要素と終了要素で正確にカバーされているすべてのコンテンツが必要です。
これは、「グループ化」したいTestCaseElementの下の 1 つの層であるため、名前Startを求める方法が明確ではありませんか?
いつか利用できる場合、各グループにアクセスするにはどうすればよいですか。