2015-12-02 51 views
0
  • 輸入XML:XSLT代碼通過基於在輸入XML的狀態在輸出XML值

          <?xml version="1.0" encoding="UTF-8"?> 
              <DATA> 
              <RECORDS> 
              <Group> 
              <Name>12345</Name> 
              <Grp>MANAGER</Grp> 
              <FName>Alex</FName> 
              <LName>Johnson</LName> 
              <String1>abcd</String1> 
              /Group> 
              <Group> 
              <Name>67891</Name> 
              <Grp>PROJECT MANAGER</Grp> 
              <FName>JAMES</FName> 
              <LName>HARPER</LName> 
              <String1></String1> 
              </Group> </RECORDS> <LOGIN> 
              <User> 
              <Name>12345</UserName> 
              <Last>14/02/2013</Last> 
              </User> 
              <User> 
              <Name>67891</Name> 
              <Last>14/01/2013/Last> 
              </User> </LOGIN> </DATA> 
    

    要求: 在輸出XML

    如果String1中有一個值,然後鍵入標籤應該具有「axbx」的值,並且如果String1是空白,則Type標籤應該具有值爲「dydy」

         <?xml version="1.0" encoding="UTF-8"?> 
              <DATA> 
              <RECORDS> 
              <Group> 
              <Name>12345</Name> 
              <Grp>MANAGER</Grp> 
              <FName>Alex</FName> 
              <LName>Johnson</LName> 
              <Type>axbx</Type> 
              </Group> 
              <Group> 
              <Name>67891</Name> 
              <Grp>PROJECT MANAGER</Grp> 
              <FName>JAMES</FName> 
              <LName>HARPER</LName> 
              <Type>dydy</Type> 
              </Group> </RECORDS> </DATA> 
    

    請建議。

+0

你究竟在哪裏堅持下去? –

回答

1

我不能編輯你的問題,所以我複製修正XML:

<?xml version="1.0" encoding="UTF-8"?> 
<DATA> 
    <RECORDS> 
     <Group> 
      <Name>12345</Name> 
      <Grp>MANAGER</Grp> 
      <FName>Alex</FName> 
      <LName>Johnson</LName> 
      <String1>abcd</String1> 
     </Group> 
     <Group> 
      <Name>67891</Name> 
      <Grp>PROJECT MANAGER</Grp> 
      <FName>JAMES</FName> 
      <LName>HARPER</LName> 
      <String1></String1> 
     </Group> 
    </RECORDS> 
    <LOGIN> 
     <User> 
      <Name>12345</Name> 
      <Last>14/02/2013</Last> 
     </User> 
     <User> 
      <Name>67891</Name> 
      <Last>14/01/2013</Last> 
     </User> 
    </LOGIN> 
</DATA> 

和XSL

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" encoding="utf-8" indent="yes"/> 

    <xsl:template match="@*|node()"> 
     <xsl:copy> 
      <xsl:apply-templates select="@*|node()"/> 
     </xsl:copy> 
    </xsl:template> 

    <xsl:template match="String1"> 
     <Type> 
      <xsl:choose> 
       <xsl:when test="string-length(.) > 0">axbx</xsl:when> 
       <xsl:otherwise>dydy</xsl:otherwise> 
      </xsl:choose> 
     </Type> 
    </xsl:template> 

</xsl:stylesheet> 

我不是很有經驗所以有可能是一個更好辦法。