【发布时间】:2011-09-20 03:09:06
【问题描述】:
我正在尝试加载 XML 文件,但我使用 load(''); 时出现以下错误或 loadXML();我猜错误不在负载中,但我想不出可能是什么。我在这里错过了什么?
XSLT
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
version="1.0">
<xsl:template match="files">
<xsl:variable name="docs">
<docs>
<xsl:for-each select="file">
<xsl:copy-of select="document(.)"/>
</xsl:for-each>
</docs>
</xsl:variable>
<xsl:apply-templates select="msxsl:node-set($docs)"/>
</xsl:template>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*" />
</xsl:copy>
</xsl:template>
<xsl:template match="item">
<product>
<xsl:apply-templates select="node() | @*" />
</product>
</xsl:template>
</xsl:stylesheet>
【问题讨论】:
-
我认为您在这里混合了两件事:您为
load声明的错误显然是loadXml错误,这可以理解为loadXml期望xml 作为字符串,如果您在这里放一个文件路径你会得到那个错误。第二个似乎一切正常(加载时),但您的 xslt 文件中有错误。 (也请发布 xslt 文件) -
@Yoshi @Gordon 我已经用我的 XSLT 更新了这个问题。
-
可能只有我一个人,但
$xslt = new DomDocument;不应该是$xslt = new DomDocument();吗? -
@Nanne 不,如果不需要构造函数参数并且您不会传递可选参数,则留下
()是可以的。 -
@Yoshi:谢谢:)。我确实认为它的可读性较差,但这并不重要:)
标签: php xml xslt load xslt-1.0