26Ksimon86: Auflistung der Knoten

Beitrag lesen

Hallo,

Ich habe folgendes Problem. Und zwar habe ich folgende XML Datei
<rule id="73">
  <name>...</name>
  <comment>....</comment>
 <rulesets>
  <ruleset ruleset_id="171"/>
       </rulesets>
</rule>
<rule id="74">
   <name>A...</name>
   <comment>....</comment>
 <rulesets>
  <ruleset ruleset_id="172"/>
 </rulesets>
</rule>-----------------------weiter unten---------
   <ruleset id="171" ">
    <name>...</name>
    <comment>....</comment>
    <rules>
     <rule rule_id="73"></rule>
    </rules>
   </ruleset>
   <ruleset id="172">
    <name>...</name>
    <comment>....</comment>
    <rules>
     <rule rule_id="74"></rule>
    </rules>

-----------und dann------------------------
 <results>
  <hits rule_id="73">
   </hit>
  </hits>
  <hits rule_id="74">
   </hit>
  </hits>
       <results>

Die ids der Rule und rulesets sind von XML-Datei zu XML-Datei unterschiedlich. Ich möchte immer den Inhalt der names und displays der in resultats/hits aufgelisteten rules/rulesets ausgeben.
Dazu habe ich folgenden XSL Versuch...

<xsl:param name="HitsRule" select="//results/hits/@rule_id"/>
     xsl:for-each  select="//results/hits"
<ul type="disc">
             <li><b><xsl:value-of select="//rulesets/ruleset/rules/rule[@rule_id=current()/$HitsRule]/parent::node()/preceding-sibling::name"/></b></li>

<li><xsl:value-of select="//rulesets/ruleset/rules/rule[@rule_id=current()/$HitsRule]/parent::node()/preceding-sibling::comment"/></li>

<li><xsl:value-of select="//rules/rule[@id=current()/$HitsRule]/name"/></li>
</ul>
     </xsl:for-each>

Leider werden mir die Inhalte zweimal komplett zusammen ausgegeben. Ich möchte aber das die beiden hits jeweils nach der id geordnet aufgelistet werden. Hat jemand einen Tipp für mich wie ich das mit XSL oder XPath lösen kann??
Ich hoffe mein anliegen ist verständlich...