我正在尝试获取属性值,但出现错误
<GetListResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<GetListResult>
<List RootFolder="/something/FileUploadTest">
</List>
</GetListResult>
</GetListResponse>
XSLT
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:sp="http://schemas.microsoft.com/sharepoint/soap/" version="1.0">
<xsl:template match="/" name="ShowVariables">
<xsl:copy-of select="/sp:GetListResponse/sp:GetListResult/sp:List/@RootFolder"/>
</xsl:template>
</xsl:stylesheet>
我收到此错误
执行返回了意外错误。 不能在“根”类型的节点内构造“属性”类型的项目。
答案 0 :(得分:1)
您不能自行创建属性。它不能单独存在。首先应该是父元素。属性仅在元素的上下文中存在。
下面的XSLT创建伪造的文字元素<fafa>
。接下来,我们可以创建属性的副本。
XSLT#1
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="http://schemas.microsoft.com/sharepoint/soap/" exclude-result-prefixes="a">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="/" name="ShowVariables">
<fafa>
<!--<xsl:copy-of select="/a:GetListResponse/a:GetListResult/a:List/@RootFolder"/>-->
<xsl:value-of select="a:GetListResponse/a:GetListResult/a:List/@RootFolder"/>
</fafa>
</xsl:template>
</xsl:stylesheet>
输出
<fafa>/something/FileUploadTest</fafa>
XSLT#2
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="http://schemas.microsoft.com/sharepoint/soap/" exclude-result-prefixes="a">
<xsl:output method="text" />
<xsl:template match="/" name="ShowVariables">
<xsl:value-of select="a:GetListResponse/a:GetListResult/a:List/@RootFolder"/>
</xsl:template>
</xsl:stylesheet>
输出
/something/FileUploadTest