Xml 尝试使用XSL应用模板从ID属性中删除尾随空格
下面是基本的XSL。我试图提取元素q_DECISION_NUMBER,并使用它创建数据元素和ID属性。但是数据元素包含空格,因此空格也被提取并生成:id=“23-7/16” 我尝试使用normalize-space()和translate(),但在这种情况下两者都不起作用 有人有什么建议吗Xml 尝试使用XSL应用模板从ID属性中删除尾随空格,xml,xslt,Xml,Xslt,下面是基本的XSL。我试图提取元素q_DECISION_NUMBER,并使用它创建数据元素和ID属性。但是数据元素包含空格,因此空格也被提取并生成:id=“23-7/16” 我尝试使用normalize-space()和translate(),但在这种情况下两者都不起作用 有人有什么建议吗 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output me
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Untitled Document</title>
</head>
<body>
<xsl:apply-templates select="Root"/>
</body>
</html>
</xsl:template>
<xsl:template match="q_DECISION_NUMBER">
<h2 class="q_DECISION_NUMBER"><xsl:attribute name="id">d<xsl:apply-templates/>
</xsl:attribute><xsl:apply-templates/></h2>
</xsl:template>
</xsl:stylesheet>
无标题文件
D
以下是一些带有典型数据的示例xml,而不是整个xml源:
<Root><DECISION><q_DECISION_NUMBER>1-1/1 </q_DECISION_NUMBER></DECISION>
<DECISION><q_DECISION_NUMBER>1-1/2 </q_DECISION_NUMBER></DECISION>
<DECISION><q_DECISION_NUMBER>1-1/3 </q_DECISION_NUMBER></DECISION>
</Root>
1-1/1
1-1/2
1-1/3
注意上面数据元素中的空格。ID属性将拾取此空白,但如果使用ID作为超链接目标,则无法使用。如果我们搜索并删除尾随空格,ID工作正常。这可能很简单,但我想不出来。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:output method="html" encoding="UTF-8"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Untitled Document</title>
</head>
<body>
<xsl:apply-templates select="Root"/>
</body>
</html>
</xsl:template>
<xsl:template match="q_DECISION_NUMBER">
<h2 class="q_DECISION_NUMBER" id="{concat('d',
translate(normalize-space(.), '/', '-'))}">
<xsl:apply-templates/>
</h2>
</xsl:template>
</xsl:stylesheet>
无标题文件
注:
onxmlns=”http://www.w3.org/1999/xhtml“
:将输出中的所有元素放入XHTML命名空间中
:XHTML中类型ID的属性不允许包含translate(…)
字符/