Salve, ho un file xml che puà avere all0interno del nodo Model sia "Region" sia "TT", ma anche solo uno dei due.

<Brandid="1"desc="IH">
<Typeid="1"desc="Tractors">
<Productid="1"desc="Tractors">
<Seriesid="10496"desc="MXC">
<Modelid="10497"desc="MX100C"tsCode="048">
<Regionid="4"name="APAC"desc="Asia Pacific"/>
<Regionid="1"name="NA"desc="North America"/>
<TTcode="696033805"desc="-MX MAXXUM MFD "colCode="2"/>
<TTcode="696033808"desc="-MX MAXXUM 100C "colCode="2"/>
<TTcode="696044567"desc="-MX MAXXUM 300C "colCode="2"/>
</Model>
<Modelid="11597"desc="abc123"tsCode="765">
<TTcode="123033805"desc="-AX XERCES ABCD "colCode="1"/>
<TTcode="234033808"desc="-AX XERCES EDF "colCode="3"/>
</Model>
</Series>
</Product>
</Type>
</Brand>Vorrei ottenere un file di testo simile a questo:

brandid=1;TypeID=1;Productid=1;SeriesID=1;Modelid= 10497;Regionid =4;TTcode=696033805
brandid=1;TypeID=1;Productid=1;SeriesID=1;Modelid= 10497;Regionid =4;TTcode=696033808
brandid=1;TypeID=1;Productid=1;SeriesID=1;Modelid= 10497;Regionid =4;TTcode=696044567
brandid=1;TypeID=1;Productid=1;SeriesID=1;Modelid= 10497;Regionid =1;TTcode=696033805
brandid=1;TypeID=1;Productid=1;SeriesID=1;Modelid= 10497;Regionid =1;TTcode=696033808
brandid=1;TypeID=1;Productid=1;SeriesID=1;Modelid= 10497;Regionid =1;TTcode=696044567
brandid=1;TypeID=1;Productid=1;SeriesID=1;Modelid= 10497;Regionid =1;TTcode=696033808
brandid=1;TypeID=1;Productid=1;SeriesID=1;Modelid= 11597;Regionid = ;TTcode=123033805
brandid=1;TypeID=1;Productid=1;SeriesID=1;Modelid= 11597;Regionid = ;TTcode=234033808

ho utilizzato questo codice xsl:

<xsl:stylesheetversion="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xslutputmethod="text"encoding="ISO-8859-1"omit-xml-declaration="yes"indent="yes"/>
<xsl:strip-spaceelements="*"/>

<xsl:variablename="newline"select="'
'"
/>
<xsl:variablename="tab"select="' '"/>

<xsl:templatematch="/">
<xsl:for-eachselect="Brand/Type/Product/Series/Model/Region">
<xsl:variablename="common"select="concat(ancestor::Brand/@id, $tab, ancestor::Type/@id, $tab, ancestor::Product/@id, $tab, ancestor::Series/@id, $tab, ancestor::Model/@id, $tab, @id)"/>
<xsl:for-eachselect="../TT">
<xsl:value-ofselect="concat($common, $tab, @code, $newline)"/>
</xsl:for-each>
</xsl:for-each>
</xsl:template>

</xsl:stylesheet>
Il risultato estrae tutte le righe che hanno sia "region" sia TT", ma non quelle che hanno solo "TT" (vorrei comunque che nel file di testo venissse evidenziato che "region" è vuoto)
Sapete come si può fare?
Grazie in anticipo