首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除具有特定属性的内部节点

删除具有特定属性的内部节点
EN

Stack Overflow用户
提问于 2016-03-13 15:07:25
回答 1查看 25关注 0票数 0

我是一个非常新的XSLT,在尝试删除包含多个节点中特定属性的节点时遇到了困难。我真的不知道术语(这使得在互联网上找到合适的答案真的很难),所以下面的代码可能会解释我在寻找比我更好的答案。

原件:

代码语言:javascript
复制
<xml version="1.0" encoding="utf-8">
<pages>
   <page id="main" default="true">
      <tabs>
         <tab id="login" default="true"/>
         <tab id="picture" default="true"/>
         <tab id="password"/>
      </tabs>
   <page id="secondary" default="true">
      <tabs>
         <tab id="pin" default="true"/>
         <tab id="picture" default="true"/>
      </tabs>
   </page>
   <page id="logout" default="true">
      <tabs>
         <tab id="goodbye"/>
         <tab id="login" default="true"/>
      </tabs>
   </page>
</pages>

目标:我想通过和删除所有的图片元素。

代码语言:javascript
复制
<xml version="1.0" encoding="utf-8">
<pages>
   <page id="main" default="true">
      <tabs>
         <tab id="login" default="true"/>
         <tab id="password"/>
      </tabs>
   <page id="secondary" default="true">
      <tabs>
         <tab id="pin" default="true"/>
      </tabs>
   </page>
   <page id="logout" default="true">
      <tabs>
         <tab id="goodbye"/>
         <tab id="login" default="true"/>
      </tabs>
   </page>
</pages>

我有一个xslt,但是它不能做我想做的事情,所以我把它放在我认为可以做到这一点的xslt下面。我的想法是,我需要进入每一页,所以不要提供一个特定的名称,然后,一旦我们进入标签寻找一个图片id,如果它在那里.不要复制it...otherwise复制一切像往常一样。

代码语言:javascript
复制
<xsl:template match="p:pages/p:page/p:tabs/p:tab>
    <xsl:copy>
        <xsl:if test=not("picture")>
            <xsl:apply-templates select="@* | node()"/>
        </xsl:if>
    </xsl:copy>
</xsl:template>

另外,如果有人对学习基础知识(或者至少是XSLT术语)有很好的建议,我们将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-13 15:53:57

下面的样式表将执行以下操作

代码语言:javascript
复制
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="@*|node()">
  <xsl:copy>
    <xsl:apply-templates select="@*|node()"/>
  </xsl:copy>
</xsl:template>

<xsl:template match="tab[@id='picture']"/>

</xsl:stylesheet>

它有两个模板(一个是泛型的,只是递归地复制输入文档)和一个特定于tab元素的模板,其图片id不产生任何输出,因此有效地删除了这些元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35971861

复制
相关文章

相似问题

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