2016-08-19 5 views
-1

Ich versuche, Werte von XML-Elementen mit einer XSL-Datei zu lesen. Meine XML-Datei ist wie:XML-Wert in Xsl lesen

<parameters> 
    <parameter id="1338240713" name="Color and structure" xml:lang="eng"> 
    <value id="1338239139" name="striped" xml:lang="eng"/> 
    <value id="1338240721" name="black" xml:lang="eng"/> 
    <value id="1338240724" name="12321312" xml:lang="eng"/> 
    <value id="1338243166" name="red" xml:lang="eng"/> 
    </parameter> 
    <parameter id="1338245472" name="State" xml:lang="eng" iaiext:context_id="CONTEXT_STATE"> 
    <value id="1338245473" name="New" xml:lang="eng" iaiext:context_id="CONTEXT_STATE_NEW"/> 
    </parameter> 
</parameters> 

ich lesen will: parameters > parameter [name "State"] > value [name]

+1

Ich denke, Sie sollten genauer sein, was Sie mit "lesen" meinen. Der Name wäre der xpath Ausdruck 'Parameter/Parameter [@ Name =" Status "]/@ Name, aber dies wird immer" State "sein? –

+0

Ich habe versucht zu tun: Aber ich habe Fehler "Attribute konstruieren Fehler" – pasza

+0

Kein Ausweg hier . Was du in deiner Frage lesen willst, verstehe ich nicht. Was bekommst du mit dem XPath? Könntest du den Kontext von xslt zeigen? Der xpath ist kontextspezifisch in xslt. –

Antwort

0

Bei einer wohlgeformten XML wie:

XML

<parameters xmlns:iaiext="http://example.com/iaiext"> 
    <parameter id="1338240713" name="Color and structure" xml:lang="eng"> 
     <value id="1338239139" name="striped" xml:lang="eng"/> 
     <value id="1338240721" name="black" xml:lang="eng"/> 
     <value id="1338240724" name="12321312" xml:lang="eng"/> 
     <value id="1338243166" name="red" xml:lang="eng"/> 
    </parameter> 
    <parameter id="1338245472" name="State" xml:lang="eng" iaiext:context_id="CONTEXT_STATE"> 
     <value id="1338245473" name="New" xml:lang="eng" iaiext:context_id="CONTEXT_STATE_NEW"/> 
    </parameter> 
</parameters> 

die folgende Anweisung :

<xsl:value-of select="/parameters/parameter[@name='State']/value/@name"/> 

gibt die Zeichenfolge "New" zurück.

+0

Dies ist genau das, was ich will, danke! – pasza