栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

XML元素具有名称空间,我的XPATH不起作用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

XML元素具有名称空间,我的XPATH不起作用

这是XPath / XSLT中最常见的问题之一:

XPath会将不带前缀的元素名称解释为属于“无名称空间”,这就是为什么在XPath表达式中仅将不带前缀名称的元素指定为节点测试时,未选择具有默认(非空)名称空间的元素的原因。

解决方案是:

创建一个名称空间绑定,在该绑定中,前缀(例如”x”)与默认名称空间相关联,然后指定x:elementName而不是elementName。

使用长而丑陋且不可靠的表达式,例如: *[name() = ‘elementName’]

这是使用上述方法的XSLT转换1。:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="http://some_url"> <xsl:output method="text"/> <xsl:template match="/">  <xsl:value-of select=  "/root/items/item/details/a:data/a:weight"/> </xsl:template></xsl:stylesheet>

在提供的XML文档上应用此转换(使用Saxon 6.5.4或任何其他兼容的XSLT 1.0处理器)时:

<root>    <items>        <item> <title>Item</title> <details>     <data xmlns="http://some_url">         <length>10</length>         <weight>1.2</weight>     </data> </details>        </item>    </items></root>

选择了正确/需要的节点,并将其字符串值复制到输出:

1.2


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/379391.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号