2012-02-16 24 views
-1

有人可以瞭解如何獲取我的xml_2的數據 myxml1如下所示,我如何獲得emp id/name的標題和值。XML to xml以有效顯示值

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
    <xX:Doc> 
<XX:Head style="Topic"> 
    <b type="para">Employee</b> 
</XX:Head> 
<XX:Head style="Subheading"> 
<b>Emp Details</b> 
</XX:Head> 
<XX:Head style="EMP_ID">888999</XX:Head> 
<XX:Head style="EMP_NAME">JOSH</XX:Head> 
<XX:Head style="HIRE_DATE">01/01/2000</XX:Head> 
<XX:Head style="Subheading"> 
<b>HOBBIES</b> 
</XX:Head> 
<XX:Head style="h1">swimming</XX:Head> 
<XX:Head style="h2">travelling</XX:Head> 

我的XSLT代碼如下

<xsl:stylesheet xmlns:xsl="http://www.w3.org/" version="1.0"> 
    <xsl:output method="xml" ></xsl:output> 
    <xsl:template match="/"> 
    <empdata xsi:noNamespaceSchemaLocation="employee.xsd"> 
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
    xmlns:xsi="http://www.w3.org/XML" version="1.0"> 
    <xsl:output method="xml" ></xsl:output> 
    <xsl:template match="/"> 
    <empdata xsi:noNamespaceSchemaLocation="hr.xsd"> 
    <xsl:apply-templates/> 
    </empdata> 
    </xsl:template> 
    <xsl:template match="XX:Head[@style='Topic']"> 
     <xsl:element name="Topic"> 
     <xsl:value-of select="." />      
     </xsl:element> 
    </xsl:template> 
    <xsl:template match="XX:Head[@style='Subheading']">  
        <xsl:for-each select="b"> 
          <xsl:element name="{name()}"> 
          <xsl:value-of select="." /> 
          </xsl:element> 
        </xsl:for-each> 
    </xsl:template> 
    <xsl:template match="XX:Head[@style='emp_id']">  
        <xsl:element name="emp_id"> 
          <xsl:value-of select="." /> 
        </xsl:element> 
    </xsl:template> 
    <xsl:template match="XX:Head[@style='emp_name']"> 
        <xsl:element name="emp-name"> 
          <xsl:value-of select="." /> 
        </xsl:element> 
    </xsl:template>  
    <xsl:template match="XX:Head[@style='h1']">  
        <xsl:element name="h1"> 
          <xsl:value-of select="." /> 
        </xsl:element> 
    </xsl:template> 
    <!-- etc...-->     
     </xsl:stylesheet> 

現在的問題是與newxml2。

 <?xml version="1.0" encoding="UTF-8" ?> 
     <empdata xmlns:xsi="http://www.w3.org/XML"  
     xsi:noNamespaceSchemaLocation="hr.xsd"> 
     <topic>employee</topic> 
     <b>emp details</b> 
     <empid>888999</empid> 
     <empname>888999</empname> 
     <b>HOBBIES/b> 
     <h1>swimming</h1> 
     <h2>travelling</h2> 
     </empdata> 

問題:如何在不重複

代碼第二部分的任何快速幫助appretiated

: 如何在不重複

任何快速幫助appretiated

代碼有問題第二部分謝謝, jill

+0

是什麼樣的XSL代碼呢?兩個''標籤?? !! – 2012-02-16 07:27:03

+0

記得發佈一個格式正確的代碼 – 2012-02-16 07:27:22

回答

1

雖然沒有太多清楚的要求,我設計了它。希望對你有效。如果在輸出中需要修改,請告訴我。

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:xsi="http://www.w3.org/XML" version="1.0" xmlns:XX="http://www.w3.org"> 
    <xsl:output method="xml"/> 
    <xsl:template match="XX:Head"> 
    <xsl:element name="{@style}"> 
     <xsl:value-of select="." /> 
    </xsl:element> 
    </xsl:template> 
    <xsl:template match="XX:Head[@style='Subheading']"> 
    <xsl:for-each select="b"> 
     <xsl:element name="{name()}"> 
     <xsl:value-of select="." /> 
     </xsl:element> 
    </xsl:for-each> 
    </xsl:template> 
</xsl:stylesheet>