XSLT Transformation

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Jens Hofmeier

    XSLT Transformation

    Hi,

    i am quite new to xml and need to transform an existing xml file:
    <Location>
    <ArticleDescrip tion>
    <Description>Sh irt Hawaii</Description>
    </ArticleDescript ion>
    <ArticleMiscs >
    <ArticleMisc>
    <Country>DEU</Country>
    <Size>32</Size>
    </ArticleMisc>
    <art:ArticleMis c>
    <Country>USA</art:Country>
    <Size>XS</art:Size>
    </ArticleMisc>
    <ArticleMisc>
    <Country>GBR</art:Country>
    <Size>6</art:Size>
    </ArticleMisc>
    </ArticleMiscs>
    </Location>

    this should be transformed to:

    <Location>
    <ArticleDescrip tion>
    <Description>Sh irt Hawaii</Description>
    </ArticleDescript ion>
    <ArticleMiscs >
    <ArticleMisc>
    <Country>DEU</Country>
    <Size>32</Size>
    </ArticleMisc>
    </ArticleMiscs>
    </Location>

    <Location>
    <ArticleDescrip tion>
    <Description>Sh irt Hawaii</Description>
    </ArticleDescript ion>
    <ArticleMiscs >
    <ArticleMisc>
    <Country>USA</art:Country>
    <Size>XS</art:Size>
    </ArticleMisc>
    </ArticleMiscs>
    </Location>

    <Location>
    <ArticleDescrip tion>
    <Description>Sh irt Hawaii</Description>
    </ArticleDescript ion>
    <ArticleMiscs >
    <ArticleMisc>
    <Country>GBR</art:Country>
    <Size>6</art:Size>
    </ArticleMisc>
    </ArticleMiscs>
    </Location>

    So the original file contains 3 "ArticleMis c" Sections per <Location>,
    the tranformed one only one Misc per Location. Can anybody give me a
    hint how this van be done via XSLT?

    Thanks,

    Jens


  • msbalaji

    #2
    Re: XSLT Transformation

    Hi,

    try this code

    <xsl:styleshe et version="1.0" xmlns:xsl="http ://www.w3.org/1999/XSL/
    Transform">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="Location ">
    <xsl:for-each select="//ArticleMisc">
    <Location>
    <xsl:copy-of select="../../ArticleDescript ion"/>
    <ArticleMiscs >
    <xsl:copy-of select="."/>
    </ArticleMiscs>
    </Location>
    </xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>

    Regards,
    Balaji. M
    sql-ebooks.blogspot .com

    On Jul 15, 11:56 am, Jens Hofmeier <aaaa111...@dis cardmail.comwro te:
    Hi,
    >
    i am quite new to xml and need to transform an existing xml file:
    <Location>
              <ArticleDescrip tion>
                <Description>Sh irt Hawaii</Description>
               </ArticleDescript ion>
            <ArticleMiscs >
              <ArticleMisc>
                <Country>DEU</Country>
                <Size>32</Size>
              </ArticleMisc>
              <art:ArticleMis c>
                <Country>USA</art:Country>
                <Size>XS</art:Size>
              </ArticleMisc>
              <ArticleMisc>
                <Country>GBR</art:Country>
                <Size>6</art:Size>
              </ArticleMisc>
             </ArticleMiscs>
    </Location>
    >
    this should be transformed to:
    >
    <Location>
              <ArticleDescrip tion>
                <Description>Sh irt Hawaii</Description>
               </ArticleDescript ion>
            <ArticleMiscs >
              <ArticleMisc>
                <Country>DEU</Country>
                <Size>32</Size>
              </ArticleMisc>
           </ArticleMiscs>
    </Location>
    >
    <Location>
               <ArticleDescrip tion>
                <Description>Sh irt Hawaii</Description>
               </ArticleDescript ion>
            <ArticleMiscs >
               <ArticleMisc>
                <Country>USA</art:Country>
                <Size>XS</art:Size>
              </ArticleMisc>
           </ArticleMiscs>
    </Location>
    >
    <Location>
              <ArticleDescrip tion>
                <Description>Sh irt Hawaii</Description>
               </ArticleDescript ion>
            <ArticleMiscs >
              <ArticleMisc>
                <Country>GBR</art:Country>
                <Size>6</art:Size>
              </ArticleMisc>
           </ArticleMiscs>
    </Location>
    >
    So the original file contains 3 "ArticleMis c" Sections per <Location>,
    the tranformed one only one Misc per Location. Can anybody give me a
    hint how this van be done via XSLT?
    >
    Thanks,
    >
    Jens

    Comment

    • Jens Hofmeier

      #3
      Re: XSLT Transformation

      Great! Thanks a lot!

      msbalaji <msbal...@india .comwrote:
      Hi,
      >
      try this code
      >
      <xsl:styleshe et version="1.0" xmlns:xsl="http ://www.w3.org/1999/XSL/
      Transform">
      <xsl:output method="xml" indent="yes"/>
      <xsl:template match="Location ">
      <xsl:for-each select="//ArticleMisc">
      <Location>
      <xsl:copy-of select="../../ArticleDescript ion"/>
      <ArticleMiscs >
      <xsl:copy-of select="."/>
      </ArticleMiscs>
      </Location>
      </xsl:for-each>
      </xsl:template>
      </xsl:stylesheet>
      >
      Regards,
      Balaji. M
      sql-ebooks.blogspot .com
      >
      On Jul 15, 11:56 am, Jens Hofmeier <aaaa111...@dis cardmail.comwro te:
      >
      Hi,
      >
      i am quite new to xml and need to transform an existing xml file:
      <Location>
                <ArticleDescrip tion>
                  <Description>Sh irt Hawaii</Description>
                 </ArticleDescript ion>
              <ArticleMiscs >
                <ArticleMisc>
                  <Country>DEU</Country>
                  <Size>32</Size>
                </ArticleMisc>
                <art:ArticleMis c>
                  <Country>USA</art:Country>
                  <Size>XS</art:Size>
                </ArticleMisc>
                <ArticleMisc>
                  <Country>GBR</art:Country>
                  <Size>6</art:Size>
                </ArticleMisc>
               </ArticleMiscs>
      </Location>
      >
      this should be transformed to:
      >
      <Location>
                <ArticleDescrip tion>
                  <Description>Sh irt Hawaii</Description>
                 </ArticleDescript ion>
              <ArticleMiscs >
                <ArticleMisc>
                  <Country>DEU</Country>
                  <Size>32</Size>
                </ArticleMisc>
             </ArticleMiscs>
      </Location>
      >
      <Location>
                 <ArticleDescrip tion>
                  <Description>Sh irt Hawaii</Description>
                 </ArticleDescript ion>
              <ArticleMiscs >
                 <ArticleMisc>
                  <Country>USA</art:Country>
                  <Size>XS</art:Size>
                </ArticleMisc>
             </ArticleMiscs>
      </Location>
      >
      <Location>
                <ArticleDescrip tion>
                  <Description>Sh irt Hawaii</Description>
                 </ArticleDescript ion>
              <ArticleMiscs >
                <ArticleMisc>
                  <Country>GBR</art:Country>
                  <Size>6</art:Size>
                </ArticleMisc>
             </ArticleMiscs>
      </Location>
      >
      So the original file contains 3 "ArticleMis c" Sections per <Location>,
      the tranformed one only one Misc per Location. Can anybody give me a
      hint how this van be done via XSLT?
      >
      Thanks,
      >
      Je

      Comment

      Working...