2016-08-12 92 views
0

輸入XML舉動XML標籤在XML和ID生成另一個地方使用XSLT

<author-group> 
<author>  
<given-name>aaa</given-name>  
<surname>bbb</surname>  
<orfid>a</orfid>  
<e-address type="email">[email protected]</e-address>  
</author>  
<affiliation>chennai</affiliation>  
</author-group> 

輸出XML應該是:

<contrib-group content-type="all">  
<contrib contrib-type="author">  
<name>  
<given-name>aaa</given-name> 
<surname>bbb</surname> 
</name> 
<xref ref-type="aff" rid="af1"/> 
<xref ref-type="email" rid="em1"/> 
</contrib> 
<aff id="af1">chennai</aff> 
<ext-link id="em1">[email protected]</ext-link> 
</contrib-group> 

誰能幫我輸入XML轉換爲輸出XML使用XSLT?

+1

你爲什麼向我們展示逃脫標記?這兩者都不是XML。 –

回答

0

你好,歡迎來到Stackoverflow。

假設您的轉義標記只是一個錯誤,下面的XSL將產生您詢問的確切輸出。

但是,它裏面沒有「代」,因爲我不知道你是什麼意思。如果需要,請提出更清晰的問題。

XML輸入

<?xml version="1.0" encoding="utf-8"?> 

<author-group> 
<author> 
<given-name>aaa</given-name> 
<surname>bbb</surname> 
<orfid>a</orfid> 
<e-address type="email">[email protected]</e-address> 
</author> 
<affiliation>chennai</affiliation> 
</author-group> 

XSL樣式表

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl" 
> 
    <xsl:output method="xml" indent="yes"/> 

    <xsl:template match="author-group"> 
    <xsl:element name="contrib-group"> 
     <xsl:attribute name="content-type"> 
     <xsl:value-of select="'all'"/> 
     </xsl:attribute> 
     <xsl:element name="contrib"> 
     <xsl:attribute name="contrib-type"> 
      <xsl:value-of select="'author'"/> 
     </xsl:attribute> 
     <xsl:element name="name"> 
      <xsl:copy-of select="./author/given-name"/> 
      <xsl:copy-of select="./author/surname"/> 
     </xsl:element> 
     <xsl:element name="xref"> 
      <xsl:attribute name="ref-type"> 
      <xsl:value-of select="'aff'"/> 
      </xsl:attribute> 
      <xsl:attribute name="rid"> 
      <xsl:value-of select="'af1'"/> 
      </xsl:attribute> 
     </xsl:element> 
     <xsl:element name="xref"> 
      <xsl:attribute name="ref-type"> 
      <xsl:value-of select="'email'"/> 
      </xsl:attribute> 
      <xsl:attribute name="rid"> 
      <xsl:value-of select="'em1'"/> 
      </xsl:attribute> 
     </xsl:element> 
     </xsl:element 
     <xsl:element name="aff"> 
     <xsl:attribute name="id"> 
      <xsl:value-of select="'af1'"/> 
     </xsl:attribute> 
     <xsl:value-of select="./affiliation"/> 
     </xsl:element> 
     <xsl:element name="ext-link"> 
     <xsl:attribute name="id"> 
      <xsl:value-of select="'em1'"/> 
     </xsl:attribute> 
     <xsl:value-of select="./author/e-address"/> 
     </xsl:element> 
    </xsl:element> 
    </xsl:template> 
</xsl:stylesheet> 

XML輸出

<?xml version="1.0" encoding="utf-8"?> 
<contrib-group content-type="all"> 
    <contrib contrib-type="author"> 
    <name> 
     <given-name>aaa</given-name> 
     <surname>bbb</surname> 
    </name> 
    <xref ref-type="aff" rid="af1" /> 
    <xref ref-type="email" rid="em1" /> 
    </contrib> 
    <aff id="af1">chennai</aff> 
    <ext-link id="em1">[email protected]</ext-link> 
</contrib-group>