2017-08-24 5 views
0

Ich habe eine xml-Code (TEI) wie folgt aus:Erhalten Sie verschiedene Attribute eines einzelnen TEI-Schlagwörter mit XSLT

<pb n="19"/> <lb n="1"/><rs type="author" xml:id="MH"><rs type="patient" xml:id="BavoilMr">Mr. Bavoil</rs> - 56 ans - clincailler au quai au<supplied reason="omitted">x</supplied> fleur<supplied reason="omitted">s</supplied> - <lb n="2"/>100 toujours l'ouïe dure <lb n="3"/>26 mai<note>"mai" korrigiert aus "mars".</note>- l'oreille droite jette du pus depuis 6 ou 8 mois - ce mois<supplied reason="omitted">-</supplied> <lb n="4"/>ci encore plus 
- surdité de cette oreille depuis 2 mois <lb n="5"/>il a eu un coup d'air en route - depuis 15 ans il a eu <lb n="6"/>l'oreille dure alternativement l'une et l'autre - <lb n="7"/>maintenant alternativement aussi <lb n="8"/>douleur <del rend="crossout">dans</del> sur l'os externe du coude il ne peut rien lever en 

und wollen es in eine HTML-Datei zu übersetzen, wo die RS-Tag <rs type="author" xml:id="MH"> ... </rs> eine ist Anker, wie die <a id=MH"> ... </a>

Meine XSL-Kodex kann ein RS-Tag mit einem speziellen Attribut tRANSLAT:

<xsl:template match= "//tei:rs[@xml:id='MH']"> 
     <a id="MH"> 
      <xsl:apply-templates/> 
     </a> 
    </xsl:template> 

aber ich kann nicht durchlaufen alle alle rs-Tags zu erhalten xml: id ist als Attribut und schreiben Sie es als ID in der <a id="MH">

wie:

<a id="Bavoil"> ... </a> 
<a id="xml_id_of_person2> ... </a> 
<a id="xml_id_of_person3"> ... </a> 

Kann mir jemand helfen?

+0

Sie passen nur Knoten mit dem Wert 'MH' im Attribut' xml: id' an. Wenn Sie den Tag "" mit einem nicht leeren 'xml: id'-Attribut übereinstimmen, sollten Sie die Liste abrufen können. –

+0

Ich möchte das Attribut. Wie würde ich es bekommen, wenn ich nur die rs nehme? Könnten Sie mir einen kurzen Code geben? – fabsurd

+0

Hinzugefügt Beispiel Code-Snippet für XML, XSLT und seine Ausgabe –

Antwort

0

Sie können Folgendes verwenden, um alle <rs> Knoten mit dem Attribut @id zu verknüpfen.

<xsl:template match="rs[@id]"> 

Beispiel XML

<root> 
    <rs type="author" id="MH"></rs> 
    <rs type="patient" id="BavoilMr"></rs> 
</root> 

XSLT 1,0

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="rs[@id]"> 
     <a id="{@id}"></a> 
    </xsl:template> 
</xsl:stylesheet> 

Output

<a id="MH"/> 
<a id="BavoilMr"/> 
+0

danke! das hat funktioniert! viel Liebe – fabsurd

+0

Wenn die Antwort für Sie funktioniert hat, können Sie bitte die Antwort akzeptieren. [Wie man die Antwort und seine Vorteile akzeptiert] (https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –

Verwandte Themen