0
我有一个xml文件,如下所示。为了简洁起见,我没有列出它完整。处理XSLT中的名称空间和变量
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<OBJECTS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.example.com/"
xsi:schemaLocation=".\\intermediate\\example.xsd">
<OBJECT>
<abbreviation>ABCD</abbreviation>
<LINKS>
....
我想在我的XSLT中引用它的一些部分。
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:t="http://www.example.com/"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=".\\intermediate\\example.xsd">
<xsl:output method="xml" indent="yes" encoding="utf-8"/>
<xsl:strip-space elements="*"/>
<xsl:variable name="objs" select ="t:OBJECTS/OBJECT"/>
<xsl:variable name="cnt" select="count($objs)"/>
<xsl:template match="t:*">
Count of objects is <xsl:value-of select="$cnt" />
</xsl:template>
</xsl:stylesheet>
我的意图是根据该名称空间显示所有对象的计数。我无法做到这一点。
Count of objects is 100.
如果我删除XML文件中的命名空间,我就会得到它。问题在哪里?
这是正确的。一个默认的名字空间(没有前缀)被继承,所以'OBJECT'和它的父'OBJECTS'在同一个名字空间中。 –
它工作完美。我的目标是使用单个xslt处理来自多个命名空间的多个xml文档。到目前为止,我已经取得了一些成功,并且感谢他们在很短的时间内给出了精确的指针。 –