首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命名空间导致问题的XSLT

命名空间导致问题的XSLT
EN

Stack Overflow用户
提问于 2012-05-19 22:31:04
回答 2查看 250关注 0票数 0

我想从下面的XML中获取"LIVE“。我读过类似的文章,因此一直在使用local-name()函数,但无论我使用哪种XSLT,我都无法获得它。

代码语言:javascript
复制
<?xml version="1.0"?>
<cns:customer xmlns:cns="https://services.cns.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://services.cns.com docs/xsd/customer.xsd">
    <cns:userId>1001</cns:userId>
    <cns:status>LIVE</cns:status>
    <cns:type wholesale="true" suspended="false">W1</cns:type>
    <cns:properties>
        <cns:property>
            <cns:name>Name</cns:name>
            <cns:value>Bob</cns:value>
        </cns:property>
    </cns:properties>
</cns:customer>

下面是我正在使用的XSLT。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" encoding="UTF-8"/>
    <xsl:template match="//*[local-name()='status']/text()">
        <xsl:value-of select="."/>
    </xsl:template>
</xsl:stylesheet>

我正在使用氧气应用程序进行测试。我认为处理器是Saxon 6.5.5。

我得到的输出是:

代码语言:javascript
复制
1001
LIVE
W1

    Name
    Bob

谢谢,保罗

EN

回答 2

Stack Overflow用户

发布于 2012-05-19 23:02:37

根据您最近对问题所做的编辑进行回答。

只需使用:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" encoding="UTF-8"/>
    <xsl:template match="//*[local-name()='status']/text()">
        value: <xsl:value-of select="."/>
    </xsl:template>
</xsl:stylesheet>

1001,W1 ....etc不与任何模板匹配,因此由默认模板处理,默认模板只是将其回显到输出中。

现在,您还可以使名称空间版本正常工作:

代码语言:javascript
复制
<xsl:template match="/c:customer/c:status" xmlns:c="https://services.cns.com">
    value: <xsl:apply-templates select="text()"/>
</xsl:template>
票数 2
EN

Stack Overflow用户

发布于 2012-05-19 22:38:26

应该使用XSLT处理程序注册名称空间。但是,如果您不能这样做,您应该能够执行以下XPath表达式:

代码语言:javascript
复制
//*[local-name()="status"]/text()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10666056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档