当前位置: 首页 > 知识库问答 >
问题:

xml名称空间的奇怪行为

邵华皓
2023-03-14

为什么我得到一个空的输出?当我删除xml中的xmlns部分时,输出是预期的,但是intellisense不再工作了。

仓库xml

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="warehouse.xsl"?>
<warehouse xmlns="http://schema.mynamespace.net">
  <container>
    <item>
      <name>book</name>
      <value>1.23</value>
    </item>
    <item>
      <name>phone</name>
      <value>45.6</value>
    </item>
  </container>
</warehouse>

仓库xsl

<xsl:stylesheet xmlns="http://schema.mynamespace.net" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text"/>

<xsl:template match="/">
  <xsl:apply-templates select="warehouse/container" />"
</xsl:template>

<xsl:template match="container">
  <xsl:apply-templates />"
</xsl:template>

</xsl:stylesheet>

共有1个答案

师增
2023-03-14

即使指定某个名称空间作为XSL的默认名称空间,没有名称空间前缀的XPath也始终位于空名称空间中。你需要这样做:

<xsl:stylesheet xmlns:mns="http://schema.mynamespace.net" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
   <xsl:output method="text"/>

   <xsl:template match="/">
     <xsl:apply-templates select="mns:warehouse/mns:container" />"
   </xsl:template>

   <xsl:template match="mns:container">
     <xsl:apply-templates />"
   </xsl:template>

</xsl:stylesheet>
 类似资料:
  • 本文向大家介绍xpath 示例XML(无名称空间),包括了xpath 示例XML(无名称空间)的使用技巧和注意事项,需要的朋友参考一下 示例 这是一些示例XML,可以针对这些XML编写示例XPath:            

  • 我是XML新手。这是一个家庭作业。我已经尽了最大努力,但我无法让实例文档进行验证。我总是犯错误 “找不到元素'站点'的声明。 我想我可能错误地声明了一些名称空间或者schemaLocations。有人能给我指一下正确的方向吗? 作业步骤: > <块引用> 在sites.xml文件中,向根站点元素添加命名空间声明,将xs前缀与XML Schema命名空间的URI相关联。为文件指定默认命名空间http

  • 我刚刚开始使用活动框架。我给我的Spring启动应用程序添加了依赖项,并想测试非常简单的sequnce流,但我被奇怪的行为卡住了。 所以,我有2个简单的服务,没有任何业务逻辑。 和带有进程定义的xml文件: 我放了一些控制器: 问题是:对于service1,它打印id,但是对于service2,它丢失id。在service2的调试器模式下,由于某种原因,参数id是空字符串。我不明白为什么...

  • 当标题[currSlotNo]的值为空时,该行将导致错误: } HomeVu1.VdslotService updVideoSlotData pictureInst:331 Picid[currSlotNo]:331 HomeVu1.VdslotService updVideoSlotData Picmk:331 HomeVu1.VdslotService updVideoSlotData aud

  • 问题内容: 在我的字符串中,我有utf-8不间断空格(0xc2a0),我想用其他内容替换它。 当我使用 它工作正常。 但是当我使用 找不到(并替换)不间断的空间。 为什么?第二个正则表达式有什么问题? 格式正确,我也使用过标志。 问题答案: 实际上,有关PHP中的转义序列的文档是错误的。使用语法时,它将搜索UTF-8字符。但是使用语法时,它将尝试将Unicode序列转换为UTF-8编码的字符。 不

  • 问题内容: 我想使用JDOM读取XML文件,然后使用XPath从JDOM Document中提取数据。它可以很好地创建Document对象,但是当我使用XPath在Document中查询元素列表时,我什么也没得到。 我的XML文档在根元素中定义了一个默认名称空间。有趣的是,当我删除默认名称空间时,它成功运行了XPath查询并返回了我想要的元素。要使XPath查询返回结果,我还必须做什么? XML: