我一直有一段時間擺脫了我擁有的XSL問題。從隨機HTML元素中刪除xmlns屬性
基本上,我有一個匹配的模板,在另一個XSL文件中調用命名模板。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:include href="/_internal/stylesheets/core/common" />
<xsl:template match="system-page">
<div id="main">
<div class="pageHeading">
<h1><system-page-display-name /> </h1>
<xsl:if test="current()/dynamic-metadata[name='Printable']/value='true' or current()/dynamic-metadata[name='Shareable']/value='true'">
<xsl:call-template name="shareAndPrint">
<xsl:with-param name="shareable" select="current()/dynamic-metadata[name='Shareable']/value" />
<xsl:with-param name="printable" select="current()/dynamic-metadata[name='Printable']/value" />
</xsl:call-template>
</xsl:if>
</div>
<xsl:copy-of select="current()//system-data-structure/html/node()"/>
</div>
</xsl:template>
然後,在其他文件中,這裏就是我所說的模板:消息標籤:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:spring="http://www.springframework.org/tags" version="1.0">
<xsl:template name="shareAndPrint">
<xsl:param name="shareable"/>
<xsl:param name="printable"/>
<div class="shareBar">
<xsl:if test="$printable = 'true'">
<a class="print" href="javascript:window.print();"><spring:message code="print.label" /></a>
</xsl:if>
<xsl:if test="$shareable = 'true'">
<span class="st_sharethis" id="shareThis"></span>
</xsl:if>
</div>
<xsl:if test="$shareable = 'true'">
<script type="text/javascript">$('#shareThis').attr('displayText','ShareThis');</script>
<script src="http://w.sharethis.com/button/buttons.js" type="text/javascript"></script>
</xsl:if>
</xsl:template>
如你我基本上使用XSL來生成具有春天JSP文件中看到在它翻譯我們的網站。
而我的問題基本上是不管我做什麼,XML輸出總是最終得到具有xmlns:spring =「http://www.springframework.org/tags」的HTML元素。我見過很多與這類問題有關的其他帖子,但似乎沒有任何解決方案適用於我。
下面是一些示例輸出:
<div id="main">
<div class="pageHeading"><h1>CR-HTML-Static-WRS-en - test </h1>
<div class="shareBar" xmlns:spring="http://www.springframework.org/tags">
<a class="print" href="javascript:window.print();">
<spring:message code="print.label" />
</a>
<span class="st_sharethis" id="shareThis" ></span>
</div>
<script type="text/javascript" xmlns:spring="http://www.springframework.org/tags">$('#shareThis').attr('displayText','ShareThis');</script>
<script src="http://w.sharethis.com/button/buttons.js" type="text/javascript" xmlns:spring="http://www.springframework.org/tags" ></script>
</div>TEST CR</div>
我嘗試添加在xsl排除對結果的前綴:樣式表標籤,雖然這從HTML元素中刪除的xmlns,它就會被添加到spring:消息標記,當解析JSP(xmlns是spring:message的無效屬性)時不起作用。所以我不確定我做錯了什麼,或者我可以嘗試什麼。
請,如果任何人有任何想法或解決方案,我將不勝感激。對不起,如果我遺漏了任何東西,我會根據需要添加它。
在此先感謝。
嗯,謝謝你的回覆。我開始懷疑它是否可行。看來我已經嘗試了一切。我可以按照您的建議手動刪除這些屬性,我已經有一份工作可以在生成的JSP實際用於Web應用程序之前對其進行操作。 – JFranks