2017-12-06 1 views
-1

Ich habe eine XML-Datei Ich möchte sowohl den Elementnamen umbenennen und das Datum Teil des Datums Rück nurXML Umbenennen Knotennamen und konvertieren Datetime Datum

<!-- reference the stylesheet --> 
<?xml-stylesheet type="text/xsl" href="Dates.xsl"?> 
<user> 
<dob>1992-02-22T00:00:00.0000000</dob> 
</user> 

ich beide wollen zu produzieren, um das Element umbenennen Name und kehren das Datum Teil nur von dem Zeitpunkt

<!-- reference the stylesheet --> 
<?xml-stylesheet type="text/xsl" href="Dates.xsl"?> 
<user> 
<USER_DOB>1992-02-22</USER_DOB> 
</user> 

In meiner XSL-Datei zu erzeugen um die Elementnamen zu ändern das funktioniert

<xsl:template match="dob"> 
    <USER_DOB><xsl:apply-templates select="node()"/></USER_DOB> 
    </xsl:template> 

Um das Datum zu ändern dies funktioniert

<xsl:template match="dob"> 
    <xsl:copy> 
     <xsl:call-template name="FormatDate"> 
      <xsl:with-param name="DateTime" select="."/> 
     </xsl:call-template> 
    </xsl:copy> 
</xsl:template> 
<xsl:template name="FormatDate"> 

     <xsl:param name="DateTime" /> 
     <xsl:variable name="date"> 
       <xsl:value-of select="substring-before($DateTime,'T')" /> 
     </xsl:variable> 

     <xsl:if test="string-length($date) != 10"> 
       <xsl:value-of select="$DateTime"/> 
     </xsl:if> 
     <xsl:if test="string-length($date) = 10"> 
       <xsl:value-of select="$date"/> 
     </xsl:if> 
</xsl:template> 

ich wissen muss, wie man beide Änderungen kombinieren die einzelnen Ausgabeelement mit dem umbenannten Knoten und dem formatierten Datum Dank zu produzieren, Brevan

Antwort

0

einfach haben eine Vorlage, die dob entspricht, die das tut ...

<xsl:template match="dob"> 
    <USER_DOB> 
     <xsl:call-template name="FormatDate"> 
      <xsl:with-param name="DateTime" select="."/> 
     </xsl:call-template> 
    </USER_DOB> 
</xsl:template> 
Verwandte Themen