XSLT 命名空间问题
XSLT Namespace troubles
在我正在处理的项目的下一步中,我遇到了 xslt 文件中的 namespace 语句的问题。我承认这个问题可能与这个问题中发现的问题相同:。但是,我无法理解那里的解决方案,并且觉得答案可能会更简单一些,即我以某种方式搞砸了语法。
我正在使用的 xml 是:
<?xml version="1.0" encoding="utf-8" ?>
<ledesxml xmlns="http://www.ledes.org/ledes20.xsd">
<firm>
<lf_vendor_id>test</lf_vendor_id>
</firm>
</ledesxml>
我目前使用的xslt是:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns="http://www.ledes.org/ledes2000.xsd"
xmlns:t="http://www.ledes.org/ledes2000.xsd"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
<METADATA>
<FIELD NAME="lf_vendor_id" TYPE="TEXT"/>
</METADATA>
<RESULTSET>
<ROW>
<COL><DATA><xsl:value-of select="/t:ledesxml/t:firm/t:lf_vendor_id"/></DATA></COL>
</ROW>
</RESULTSET>
</FMPXMLRESULT>
</xsl:template>
</xsl:stylesheet>
导入 Filemaker 会生成一条没有任何数据的新记录。这里的 xml 输入是行业标准,不会改变(至少就目前而言)。
此处名称 spaces 的使用有点令人困惑,并且几乎完全基于上面链接的问题中使用的名称spaces。在 "value-of select" 语句中使用通配符确实有效,但如您所料,它会获取 xml 示例中的所有文本,而不仅仅是我感兴趣的数据。
由于导入似乎有效并且名称 space 约定似乎对另一张海报有效,我有点不知所措。有没有人指出我哪里出错了?
XML 文档具有 xmlns="http://www.ledes.org/ledes20.xsd"
,而 XSLT 声明 xmlns:t="http://www.ledes.org/ledes2000.xsd"
时使用 ledes2000
而不是 ledes20
。您需要在两个文档中使用相同的命名空间 URL。
在我正在处理的项目的下一步中,我遇到了 xslt 文件中的 namespace 语句的问题。我承认这个问题可能与这个问题中发现的问题相同:
我正在使用的 xml 是:
<?xml version="1.0" encoding="utf-8" ?>
<ledesxml xmlns="http://www.ledes.org/ledes20.xsd">
<firm>
<lf_vendor_id>test</lf_vendor_id>
</firm>
</ledesxml>
我目前使用的xslt是:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns="http://www.ledes.org/ledes2000.xsd"
xmlns:t="http://www.ledes.org/ledes2000.xsd"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
<METADATA>
<FIELD NAME="lf_vendor_id" TYPE="TEXT"/>
</METADATA>
<RESULTSET>
<ROW>
<COL><DATA><xsl:value-of select="/t:ledesxml/t:firm/t:lf_vendor_id"/></DATA></COL>
</ROW>
</RESULTSET>
</FMPXMLRESULT>
</xsl:template>
</xsl:stylesheet>
导入 Filemaker 会生成一条没有任何数据的新记录。这里的 xml 输入是行业标准,不会改变(至少就目前而言)。
此处名称 spaces 的使用有点令人困惑,并且几乎完全基于上面链接的问题中使用的名称spaces。在 "value-of select" 语句中使用通配符确实有效,但如您所料,它会获取 xml 示例中的所有文本,而不仅仅是我感兴趣的数据。
由于导入似乎有效并且名称 space 约定似乎对另一张海报有效,我有点不知所措。有没有人指出我哪里出错了?
XML 文档具有 xmlns="http://www.ledes.org/ledes20.xsd"
,而 XSLT 声明 xmlns:t="http://www.ledes.org/ledes2000.xsd"
时使用 ledes2000
而不是 ledes20
。您需要在两个文档中使用相同的命名空间 URL。