我有一个XML配置文件,我想从该文件中提取一个字段并将其包含在我的XSL中。
以下是我遇到的例子:
<xsl:template match="">
<html>
<head>
<title>My Page</title>
<!-- CSS styles included here -->
<xsl:copy-of select="document('style.xml')/style" />
</head>
<body>
<!-- ... -->
</body>
</html>
</xsl:template>
但这并不能解决我的问题,因为它包含整个.xml文件。我只想要包含xml文件中的一个属性,所以我必须在xsl中解析它并仅包含该节点。我该怎么做?
谢谢
从评论中更新
如果我在我的网站中加入以下内容 XSL:
<xsl:copy-of select="document('cmsaENV.xml')/STR_ENV_PROPS/text()"/>
我的xml包含:
<STR_ENV_PROPS value="c:/apps/cit/deploy/d_cmsadm/cmsa_applicationEnv.xml"/>
然后是字符串
"c:/apps/cit/deploy/d_cmsadm/cmsa_applicationEnv.xm"
将放在我的xsl里面?这是 正确的吗?
答案 0 :(得分:4)
我不确定能得到你想要的东西,但是如果你只想包含<style>
元素的内容(而不是元素本身),请替换
<xsl:copy-of select="document('style.xml')/style" />
与
<xsl:value-of select="document('style.xml')/style/text()" />
text()
选择导入文档中style
元素的文字内容。
编辑:如果您想要属性的值而不是文本内容,则需要以下内容:
<xsl:value-of select="string(document('style.xml')/style/@someAttribute)" />
请注意,您需要将属性转换为常规文本字符串,我使用string()
函数。