3
<?xml version="1.0" encoding="UTF-8"?>
<schools>
<city>Marshall</city>
<state>Maryland</state>
<highschool>
<schoolname>Marshalls</schoolname>
<department id="1">
<deptCode>D1</deptCode>
<deptName>Chemistry</deptName>
<deptHead>Henry Carl</deptHead>
</department>
<department id="2">
<deptCode>D2</deptCode>
<deptName>Science-Physics</deptName>
<deptHead>Martin Sean</deptHead>
</department>
<department id="3">
<deptCode>D3</deptCode>
<deptName>Science-Botany</deptName>
<deptHead>Susanne Charles</deptHead>
</department>
<department id="4">
<deptCode>D4</deptCode>
<deptName>Science-Chemistry</deptName>
<deptHead>Henry Carl</deptHead>
</department>
<highschool>
<schools>
元兄弟姐妹的值從上面的XML,如果城市是元帥和學校的名字是執法官,然後檢查這兩個部門的名稱化學與科學 - 化學存在, 如果屬實,取出化學系的元素。如果Science-Chemistry不存在,則使用 DeptCode將化學部門值修改爲4,並將部門名稱設置爲Science-Chemistry和Department屬性標識爲4.XSLT - 修改根據病情
以下是我正在使用的XSLT。我需要在remDept模板下編寫代碼,以刪除部門名稱科學化學存在的部門。 如果科學化學不存在,則修改模板modifyDept中的部門代碼和部門名稱爲D4。有人能幫我嗎?在此先感謝
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" />
<xsl:strip-space elements="*" />
<xsl:template match="node()[email protected]*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
<xsl:copy>
</xsl:template>
<xsl:template match="/schools[city='Marshall' and /highschools/schoolname='Marshalls']">
<xsl:if test="contains(deptName='Science-Chemistry')">
<xsl:choose>
<xsl:when test="contains(deptName='Chemistry'">
<xsl:call-template name="remDept">
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="modifyDept">
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>
<xsl:template name="remDept">
// TO DO
</xsl:template>
<xsl:template name="modifyDept">
// TO DO
</xsl:template>
</xsl:stylesheet>
我是一個newbee編寫XSLT文件。我很難找到解決方案。我一直想了解層次結構如何工作,並且您的解決方案幫助我學習。非常感謝。 – 2014-10-27 02:43:29
+1用於XSLT編碼。 – 2014-10-28 12:18:03