這是我的 xsl 代碼
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.martin-loetzsch.de/DOTML" version="3.0">
<xsl:import href="http://www.martin-loetzsch.de/DOTML/dotml2dot.xsl"/><xsl:param name="quot" as="xs:string">"</xsl:param>
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:variable name="dotml">
<xsl:for-each select = "Import/Row">
<node style="filled" fontsize="16">
<xsl:attribute name="id">
<xsl:value-of select='$quot || role || $quot'/>
</xsl:attribute>
<xsl:attribute name="label">
<xsl:value-of select='$quot || role || $quot'/>
</xsl:attribute>
</node>
<node style="filled" fontsize="16">
<xsl:attribute name="id">
<xsl:value-of select='$quot || items/subMenu[@name="pns"]/url || $quot'/>
</xsl:attribute>
<xsl:attribute name="label">
<xsl:value-of select='$quot || items/subMenu[@name="pns"]/url || $quot'/>
</xsl:attribute>
</node>
<node style="filled" fontsize="16">
<xsl:attribute name="id">
<xsl:value-of select='$quot || items/subMenu[@name="pppk"]/url || $quot'/>
</xsl:attribute>
<xsl:attribute name="label">
<xsl:value-of select='$quot || items/subMenu[@name="pppk"]/url || $quot'/>
</xsl:attribute>
</node>
<node style="filled" fontsize="16">
<xsl:attribute name="id">
<xsl:value-of select='$quot || items/subMenu[@name="ppt"]/url || $quot'/>
</xsl:attribute>
<xsl:attribute name="label">
<xsl:value-of select='$quot || items/subMenu[@name="ppt"]/url || $quot'/>
</xsl:attribute>
</node>
<edge fontname="Arial" fontsize="9" label="Permit">
<xsl:attribute name="from">
<xsl:value-of select='$quot || role || $quot'/>
</xsl:attribute>
<xsl:attribute name="to">
<xsl:value-of select='$quot || items/subMenu[@name="pns"]/url || $quot'/>
</xsl:attribute>
</edge>
<edge fontname="Arial" fontsize="9" label="Permit">
<xsl:attribute name="from">
<xsl:value-of select='$quot || role || $quot'/>
</xsl:attribute>
<xsl:attribute name="to">
<xsl:value-of select='$quot || items/subMenu[@name="pppk"]/url || $quot'/>
</xsl:attribute>
</edge>
<edge fontname="Arial" fontsize="9" label="Permit">
<xsl:attribute name="from">
<xsl:value-of select='$quot || role || $quot'/>
</xsl:attribute>
<xsl:attribute name="to">
<xsl:value-of select='$quot || items/subMenu[@name="ppt"]/url || $quot'/>
</xsl:attribute>
</edge>
</xsl:for-each>
</xsl:variable>
<xsl:apply-templates select="$dotml/node()"/>
</xsl:template>
</xsl:stylesheet>
我按照您的建議在上面的 xsl 檔案的第 3 行添加了 <xsl:param name="quot" as="xs:string">"</xsl:param> 標記。我已經將標記放在每個我的 xsl 檔案中的值,以檢索我的 xsl 檔案中的值,以便該值成為一個字串
當我運行代碼時,出現如下錯誤:
C:\Users\rafif\Desktop\saxons>java -jar saxon-he-10.6.jar -xsl:role policy.xsl -s:role-policy.xml -o:policy.txt Error in xsl:param/@as on line 3 column 113 of role-policy.xsl: XPST0081 Namespace prefix 'xs' has not been declared Errors were reported during stylesheet compilation
問題是,我應該把<xsl:param name="quot" as="xs:string">"</xsl:param>標簽放在哪里,因為我試圖把標簽放在第 3 行,發生錯誤
謝謝你
uj5u.com熱心網友回復:
好吧,您使用的樣式表似乎沒有創建您想要的格式或您的其他程式需要的格式,所以放棄該樣式表并撰寫您自己的或至少編輯它以不創建例如<dot-filename>graphs/node</dot-filename>,即洗掉該<dot-filename><xsl:value-of select="@file-name"/></dot-filename>代碼中的行.
您可以輕松地為檔案的本地副本和<xsl:import href="dotml2dot.xml"/>該本地副本執行此操作,而不是從服務器中提取檔案。
至于引號,您似乎想將例如轉換<xsl:value-of select='items/subMenu[@name="pns"]/url'/>為例如<xsl:value-of select='$quot || items/subMenu[@name="pns"]/url || $quot'/> after declaring e.g. <xsl:param name="quot" as="xs:string">"</xsl:param>` 作為全域引數。
uj5u.com熱心網友回復:
這是正確答案...
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.martin-loetzsch.de/DOTML" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="3.0">
<xsl:import href="dotml2dot.xsl"/>
<xsl:param name="quot" as="xs:string">"</xsl:param>
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:variable name="dotml">
<xsl:for-each select = "Import/Row">
<graph file-name="graphs/nice_graph" rankdir="LR">
<node style="filled" fontsize="16">
<xsl:attribute name="id">
<xsl:value-of select='$quot || role || $quot'/>
</xsl:attribute>
<xsl:attribute name="label">
<xsl:value-of select='role'/>
</xsl:attribute>
</node>
<node style="filled" fontsize="16">
<xsl:attribute name="id">
<xsl:value-of select='$quot || items/subMenu[@name="pns"]/url || $quot'/>
</xsl:attribute>
<xsl:attribute name="label">
<xsl:value-of select='items/subMenu[@name="pns"]/url'/>
</xsl:attribute>
</node>
<node style="filled" fontsize="16">
<xsl:attribute name="id">
<xsl:value-of select='$quot || items/subMenu[@name="pppk"]/url || $quot'/>
</xsl:attribute>
<xsl:attribute name="label">
<xsl:value-of select='items/subMenu[@name="pppk"]/url'/>
</xsl:attribute>
</node>
<node style="filled" fontsize="16">
<xsl:attribute name="id">
<xsl:value-of select='$quot || items/subMenu[@name="ppt"]/url || $quot'/>
</xsl:attribute>
<xsl:attribute name="label">
<xsl:value-of select='items/subMenu[@name="ppt"]/url'/>
</xsl:attribute>
</node>
<edge fontname="Arial" fontsize="9" label="Permit">
<xsl:attribute name="from">
<xsl:value-of select='$quot || role || $quot'/>
</xsl:attribute>
<xsl:attribute name="to">
<xsl:value-of select='$quot || items/subMenu[@name="pns"]/url || $quot'/>
</xsl:attribute>
</edge>
<edge fontname="Arial" fontsize="9" label="Permit">
<xsl:attribute name="from">
<xsl:value-of select='$quot || role || $quot'/>
</xsl:attribute>
<xsl:attribute name="to">
<xsl:value-of select='$quot || items/subMenu[@name="pppk"]/url || $quot'/>
</xsl:attribute>
</edge>
<edge fontname="Arial" fontsize="9" label="Permit">
<xsl:attribute name="from">
<xsl:value-of select='$quot || role || $quot'/>
</xsl:attribute>
<xsl:attribute name="to">
<xsl:value-of select='$quot || items/subMenu[@name="ppt"]/url || $quot'/>
</xsl:attribute>
</edge>
</graph>
</xsl:for-each>
</xsl:variable>
<xsl:apply-templates select="$dotml/node()"/>
</xsl:template>
</xsl:stylesheet>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/363068.html
