對不起,如果我問一個新手問題,但命名空間真的讓我感到困惑。XSLT使用右命名空間生成的SVG
我想從單個XML/XSLT生成大量的SVG文檔。
我的樣式表:
<xsl:stylesheet version="2.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
>
<xsl:output method="xml" indent="yes" name="xml" cdata-section-elements="style"/>
<xsl:template match="/">
<xsl:apply-templates select="//root/menu"/>
</xsl:template>
<xsl:template match="menu">
<xsl:variable name="filename" select="concat(@name,'.svg')"/>
<xsl:result-document href="{$filename}" format="xml">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="basic" id="svg-root" width="482" height="600">
<defs>
<style type="text/css"><![CDATA[rect {
fill: white;
fill-opacity:1;
continues...
這工作,併產生以下的輸出:
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.1" baseProfile="basic" id="svg-root" width="482" height="600">
<defs>
<style type="text/css"><![CDATA[rect {
fill: white;
fill-opacity:1;
continues...
但我想基於計算的內容
我能夠指定高度和寬度屬性已嘗試創建「<svg>」as < xsl:element name =「svg」> <的xsl:屬性名稱= 「的xmlns」 > http://www.w3.org/2000/svg </XSL:屬性> </XSL:元素>
,因爲它(的XMLSpy)不會讓我分配xmlns屬性,就會失敗。
如果我不指定在根(SVG)名稱空間,XMLNS是自動添加到根<SVG>節點和所有第一級子節點被施加有像以下命名空間引用(參照<DEFS> )
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" baseProfile="basic" id="svg-root" width="482" height="600">
<defs xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<style type="text/css"><![CDATA[rect {
fill: white;
fill-opacity:1;
continues...
如何可以根SVG元件上,並且在同一時間計算的高度和寬度的值,而不在第一級子分支多餘命名空間引用指定需要的命名空間?
我無法理解你的問題。爲什麼要計算造成問題的高度和寬度以及高度?您的示例代碼中沒有一個顯示關於該非常重要的一點。 – JLRishe 2013-02-18 22:29:55