首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用带有样式表和xsltproc的xslt从xml中删除元素?

如何使用带有样式表和xsltproc的xslt从xml中删除元素?
EN

Stack Overflow用户
提问于 2008-11-26 11:24:57
回答 1查看 101.2K关注 0票数 71

我有很多XML文件,它们的形式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Element fruit="apple" animal="cat" />

我想把它从文件中删除。

使用XSLT样式表和Linux命令行实用程序xsltproc,我该如何做呢?

至此,在脚本中,我已经有了包含我希望删除的元素的文件列表,因此可以将单个文件用作参数。

编辑:这个问题最初是缺乏意图的。

我想要实现的是删除整个元素" element“where (猫”fruit==“&& animal=="cat")。在同一文档中有许多名为"Element“的元素,我希望这些元素能够保留下来。所以

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Element fruit="orange" animal="dog" />
<Element fruit="apple"  animal="cat" />
<Element fruit="pear"   animal="wild three eyed mongoose of kentucky" />

会变成:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Element fruit="orange" animal="dog" />
<Element fruit="pear"   animal="wild three eyed mongoose of kentucky" />
EN

回答 1

Stack Overflow用户

发布于 2019-03-08 21:53:58

@Dimitre Novatchev给出的答案当然既正确又优雅,但有一个泛化( OP没有询问):如果您想要过滤的元素也有您想要保留的子元素或文本,该怎么办?

我认为这个小的变化涵盖了这种情况:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    version="2.0">

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

    <!-- drop DropMe elements, keeping child text and elements -->
    <xsl:template match="DropMe">
        <xsl:apply-templates/>
    </xsl:template>

</xsl:stylesheet>

要指定其他属性等,匹配条件可能很复杂,如果您要删除其他内容,则可以使用多个这样的模板。

所以这个输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<mydocument>
    <p>Here's text to keep</p>
    <p><DropMe>Keep this text but not the element</DropMe>; and keep what follows.</p>
    <p><DropMe>Also keep this text and <b>this child element</b> too</DropMe>, along with what follows.</p>
</mydocument>

生成以下输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?><mydocument>
    <p>Here's text to keep</p>
    <p>Keep this text but not the element; and keep what follows.</p>
    <p>Also keep this text and <b>this child element</b> too, along with what follows.</p>
</mydocument>

归功于XSLT Cookbook

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

https://stackoverflow.com/questions/321860

复制
相关文章
Kubernetes HPA 详解
在前面的学习中我们使用用一个 kubectl scale 命令可以来实现 Pod 的扩缩容功能,但是这个毕竟是完全手动操作的,要应对线上的各种复杂情况,我们需要能够做到自动化去感知业务,来自动进行扩缩容。为此,Kubernetes 也为我们提供了这样的一个资源对象:HorizontalPodAutoscaling(Pod水平自动伸缩),简称 HPA,HPA 通过监控分析一些控制器控制的所有 Pod 的负载变化情况来确定是否需要调整 Pod 的副本数量,这是 HPA 最基本的原理:
我是阳明
2020/06/15
4.5K0
Kubernetes HPA 详解
kubernetes之Hpa原
    HorizontalPodAutoscaler, k8s的版本是1.14. 
克虏伯
2020/04/02
6740
Kubernetes HPA Controller工作原理
关于Kubernetes Horizontal Pod Autoscaler(简称HPA)的概念和使用介绍,请参考以下官方文档链接,在这里我不再赘述。
菲宇
2019/06/12
8310
Kubernetes HPA Controller工作原理
原 荐 Kubernetes HPA Con
Author: xidianwangtao@gmail.com 更多关于kubernetes的深入文章,请看我csdn或者oschina的博客主页。 关于kubernetes HPA Controller的工作原理,请参考我这篇博文。 源码目录结构分析 HorizontalPodAutoscaler(以下简称HPA)的主要代码如下,主要涉及的文件不多。 cmd/kube-controller-manager/app/autoscaling.go // HPA Controller的启动代码
Walton
2018/04/13
2K0
原                    荐                                                            Kubernetes HPA Con
Kubernetes HPA Controller工作原理
HPA Controller 介绍 关于Kubernetes Horizontal Pod Autoscaler(简称HPA)的概念和使用介绍,请参考以下官方文档链接,在这里我不再赘述。 https://kubernetes.io/docs/user-guide/horizontal-pod-autoscaling/ https://github.com/kubernetes/community/blob/master/contributors/design-proposals/horizontal-pod
Walton
2018/04/13
2.4K0
Kubernetes HPA Controller工作原理
Kubernetes_HPA使用详解
kubectl scale命令可以来实现 Pod 的扩缩容功能,但是这个毕竟是完全手动操作的,要应对线上的各种复杂情况,我们需要能够做到自动化去感知业务,来自动进行扩缩容。为此,Kubernetes 也为我们提供了这样的一个资源对象:Horizontal Pod Autoscaling(Pod 水平自动伸缩),简称HPA,HPA 通过监控分析一些控制器控制的所有 Pod 的负载变化情况来确定是否需要调整 Pod 的副本数量,这是 HPA 最基本的原理:
mikelLam
2022/10/31
9450
Kubernetes_HPA使用详解
优化 Kubernetes 横向扩缩容 HPA
Pod水平自动扩缩(Horizontal Pod Autoscaler, 简称HPA)可以基于 CPU/MEM 利用率自动扩缩Deployment、StatefulSet 中的 Pod 数量,同时也可以基于其他应程序提供的自定义度量指标来执行自动扩缩。默认HPA可以满足一些简单场景,对于生产环境并不一定适合,本文主要分析HPA的不足与优化方式。
我是阳明
2021/06/25
2.3K0
优化 Kubernetes 横向扩缩容 HPA
Kubernetes HPA级别扩缩容配置预览
本文分析 HPA 功能增强的建议,而不是真正的实现。Kubernetes 1.16 发布前夕,该功能增强还没有合入,所以最快也要到 1.17 版本发布。
CNCF
2019/12/05
1.6K0
Kubernetes HPA级别扩缩容配置预览
一文搞懂 Kubernetes HPA 实现原理-(上篇)
Hello folks,我是 Luga,今天我们来聊一下云原生生态核心技术 Kubernetes Autoscaling 之一的—— Horizontal Pod Autoscaler (HPA)。
Luga Lee
2023/08/11
2.9K3
一文搞懂 Kubernetes HPA 实现原理-(上篇)
HPA
Horizontal Pod Autoscaling 可以根据 CPU 利用率自动伸缩一个 ReplicaSet、Deployment 或者中的 Pod 数量
星哥玩云
2022/09/15
3820
HPA
Kubernetes HPA 控制器横向伸缩的关键实现
HPA 是 Kubernetes 中横向伸缩的实现,里面有很多可以借鉴的思想,比如延迟队列、时间序列窗口、变更事件机制、稳定性考量等关键机制, 让我们一起来学习下大佬们的关键实现。
我是阳明
2020/06/19
1K0
Kubernetes HPA 控制器横向伸缩的关键实现
在腾讯云容器服务 TKE 中利用 HPA 实现业务的弹性伸缩
jokey,腾讯云容器产品工程师,热衷于云原生领域。目前主要负责腾讯云TKE 的售中、售后的技术支持,根据客户需求输出合理技术方案与最佳实践。 概述 Kubernetes Pod 水平自动扩缩(Horizontal Pod Autoscaler,以下简称 HPA)可以基于 CPU 利用率、内存利用率和其他自定义的度量指标自动扩缩 Pod 的副本数量,以使得工作负载服务的整体度量水平与用户所设定的目标值匹配。本文将介绍和使用腾讯云容器服务 TKE 的 HPA 功能实现 Pod 自动水平扩缩容。 使用场景 H
腾讯云原生
2020/12/03
2.7K0
Label,RC,HPA
上面简单说了一下 pod 的基本知识点,待到后面会使用到 pod 的一些高阶知识点的时候,还可以再细细琢磨底层原理
阿兵云原生
2023/09/01
1530
Label,RC,HPA
Kubernetes 中 Pod 弹性伸缩详解与使用
本文主要介绍了HPA的相关原理和使用方法。HPA可以对服务的容器数量做自动伸缩,对于服务的稳定性是一个很好的提升。但是当前稳定版本中只有cpu使用率这一个指标,是一个很大的弊端。我们会继续关注社区HPA自定义监控指标的特性,待功能稳定后,会持续输出相关文档。
腾讯云容器服务团队
2017/07/05
13.5K3
Kubernetes 中 Pod 弹性伸缩详解与使用
成本最高降低70%,腾讯大规模业务集群的云原生成本优化实践!
唐聪,腾讯云容器技术专家,极客时间专栏《etcd实战课》作者,开源项目kstone和crane内部雏形版 founder,etcd活跃贡献者,主要负责腾讯云大规模k8s和etcd平台稳定性和性能优化、业务集群成本优化、有状态服务容器化等产品研发设计工作。 背景 2021年下半年以来,在新冠疫情和互联网政策的冲击之下,各大互联网公司都在进行降本增效。降本增效的一大核心手段就是优化计算资源成本,本文将以腾讯某内部 Kubernetes/TKE 业务为案例,详细阐述如何从 0到1(成本数据采集与分析、优化措施、行
腾讯云原生
2022/07/01
2.9K0
成本最高降低70%,腾讯大规模业务集群的云原生成本优化实践!
挖掘Kubernetes 弹性伸缩:水平 Pod 自动扩展的全部潜力
Kubernetes 已成为容器编排事实上的标准,为大规模管理容器化应用程序提供了强大的平台。Kubernetes 的一项基本功能是其弹性伸缩功能,它允许应用程序根据工作负载和性能指标进行扩展或缩减。在本文中,我们将探讨 Horizontal Pod Autoscaler (HPA),它是 Kubernetes 自动缩放的关键组件。我们将深入研究 HPA 的基础知识、它的工作原理以及如何使用自定义指标和资源限制来增强其性能。
用户1107783
2023/09/11
9210
挖掘Kubernetes 弹性伸缩:水平 Pod 自动扩展的全部潜力
K8S之HPA自动扩缩容机制
kubectl scale 命令可以来实现 Pod 的扩缩容功能,但是这个毕竟是完全手动操作的,要应对线上的各种复杂情况,我们需要能够做到自动化去感知业务,来自动进行扩缩容。为此,Kubernetes 也为我们提供了这样的一个资源对象: Horizontal Pod Autoscaling(Pod 水平自动伸缩) ,简称 HPA ,HPA 通过监控分析一些控制器控制的所有 Pod 的负载变化情况来确定是否需要调整 Pod 的副本数量
tunsuy
2023/08/19
1K0
K8S之HPA自动扩缩容机制
成本最高降低70%,腾讯大规模业务集群的云原生成本优化实践!
唐聪,腾讯云容器技术专家,极客时间专栏《etcd实战课》作者,开源项目kstone和crane内部雏形版 founder,etcd活跃贡献者,主要负责腾讯云大规模k8s和etcd平台稳定性和性能优化、业务集群成本优化、有状态服务容器化等产品研发设计工作。 背景 2021年下半年以来,在新冠疫情和互联网政策的冲击之下,各大互联网公司都在进行降本增效。降本增效的一大核心手段就是优化计算资源成本,本文将以腾讯某内部 Kubernetes/TKE 业务为案例,详细阐述如何从 0到1(成本数据采集与分析、优化措施、
腾讯云开发者
2022/11/28
1.4K0
成本最高降低70%,腾讯大规模业务集群的云原生成本优化实践!
通过自定义prometheus数据实现k8s hpa
从 Kubernetes 1.8 开始,资源使用指标(如容器 CPU 和内存使用率)通过 Metrics API 在 Kubernetes 中获取。 这些指标可以直接被用户访问(例如通过使用 kubectl top 命令),或由集群中的控制器使用(例如,Horizontal Pod Autoscale 可以使用这些指标作出决策)。
有点技术
2020/07/14
3.9K1
通过自定义prometheus数据实现k8s hpa
再战 k8s(13):Pod 的扩缩容
实际生产系统, 会遇到某个服务需要扩容的场景,也可能会遇到由于资源紧张或者工作负载降低而需要减少服务实例数量的场景。
看、未来
2022/05/06
7430
再战 k8s(13):Pod 的扩缩容

相似问题

除了托管Bean最佳实践之外

22

除了合同之外,还应该知道些什么?

40

除了托管Windows APps之外,WCF的最大优势是什么?

31

除了datascience之外,我是否应该在Ubuntu上使用Anaconda?

11

除了一些输入文本之外,我如何清除表单?

218
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文