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

删除空的xmlns属性

隆璞
2023-03-14

这是我的输入xml

这是我的xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
version="1.0">

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

<xsl:template match="b">
 <xsl:choose>                                                       
  <xsl:when test=".='This is a text'">
    <e xmlns="www.example.com">
      <f>yes</f>
      <g>
          <xsl:call-template name="atemp"/>
      </g>
    </e>
  </xsl:when>                                                                      
  <xsl:otherwise>
   <d>NO</d>                                                         
  </xsl:otherwise>
 </xsl:choose>
</xsl:template>

<xsl:template name="atemp">
  <l>l</l>
  <m>m</m>
  <n>n</n>
</xsl:template>

</xsl:stylesheet>

这是输出xml-

<?xml version="1.0" encoding="UTF-8"?>

<e xmlns="www.example.com">
 <f>yes</f>
 <g>
  <l xmlns="">l</l>
  <m xmlns="">m</m>
  <n xmlns="">n</n>
 </g>
</e>

我想去掉l,m,n标签中的那些。这段代码是大型Java项目的一部分。有趣的是,我同事的计算机中没有生成这些代码,即使我们都有相同的代码。下面是运行代码http://xsltfiddle.liberty-development.net/3NzcBtS/1

这是我想要的输出-

<?xml version="1.0" encoding="UTF-8"?>

<e xmlns="www.example.com">
 <f>yes</f>
 <g>
  <l>l</l>
  <m>m</m>
  <n>n</n>
 </g>
</e>

那我该怎么办?


共有1个答案

宿嘉
2023-03-14

改变

<xsl:template name="atemp">
  <l>l</l>
  <m>m</m>
  <n>n</n>
</xsl:template>

<xsl:template name="atemp">
  <l xmlns="www.example.com">l</l>
  <m xmlns="www.example.com">m</m>
  <n xmlns="www.example.com">n</n>
</xsl:template>

为了将lmn放在www.example.com命名空间中。由于www.example.com默认命名空间已在e上声明,并且由于这些元素是e的后代,因此您将根据要求从这些元素中删除xmlns="

或者,通过@TimC:

<xsl:template name="atemp" xmlns="www.example.com">
  <l>l</l>
  <m>m</m>
  <n>n</n>
</xsl:template>

或者,一路分解到xsl:stylesheet:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                version="1.0"
                xmlns="www.example.com">
 类似资料:
  • 如何删除转换中的空? 下面是结果XML中显示的示例。注意空的。 我正在与VisualStudio2019 16.8.4合作。 这是我需要转换的源XML。 以下是我为XSLT制作的内容: 然而,输出会产生: 期望的输出是这样的:

  • 我请求soapenv提供以下信息: 我想删除xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance" 我能用我的服务吗?也许你可以设定组织。阿帕奇。轴客户调用具有某些属性的对象。。。我不知道。

  • 问题内容: 如何删除JavaScript对象中或JavaScript对象中的所有属性? (问题与此数组类似) 问题答案: 您可以遍历对象: 如果您担心此属性删除不会使对象的proptype链运行起来,则还可以: 有关null与未定义的一些注意事项:

  • 我遇到了损坏的CSV问题,它在图像链接中有空白。 CSV文件由我的客户业务合作伙伴自动创建,约22000行。CSV中大约有30个链接被破坏,我无法修复。因为它每3小时更新一次。 所以,我试图想出一个自动的解决方案,但似乎没有任何效果。 问题在于图像链接,如以下链接:https://images.tyroo.de/GISLAVED_ULTRA_SPEED2�.jpg 它以前有空间。一些文件有3个空格

  • 问题内容: 我正在使用简单的xml库:http : //simple.sourceforge.net/home.php 我的@ElementList批注有问题:如果我使用这样的批注: 我的XML文件还有一个属性: 如何删除属性? 问题答案: 该属性告诉Simple 您使用哪种实现。如果缺少,Simple会自己寻找合适的类。 一种解决方案是使用而不是: 现在,简单将不会添加class-Attribu

  • 问题内容: 如果我有JSON对象,请说: 我可以删除“ key1”使其变为: 问题答案: 简单: