使用 xslt 复制包含特定子元素的父元素

2024-01-01

我有一个简单的 xml:

<custom-objects>
    <custom-object id="1">
        <object-attribute attribute-id="address1">Warndtstr. 33</object-attribute>
        <object-attribute attribute-id="branch">01</object-attribute>
        <object-attribute attribute-id="catalogid">7991</object-attribute>
        <object-attribute attribute-id="exportdate">2015-09-19</object-attribute>
    </custom-object>
    <custom-object>
...
    </custom-object>
</custom-objects>

我试图简单地复制每个<custom-object>包含子元素的元素,其中@attribute-id is "exportdate"并具有特定的文本值。

这是我的 xslt:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output omit-xml-declaration="yes" indent="yes"/>
    <xsl:strip-space elements="*"/>

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

    <xsl:template match="custom-object[object-attribute[@attribute-id='exportdate']='2015-09-19']"/>
</xsl:stylesheet>

当使用 xpath 时匹配有效。 xslt 返回空结果。

  • 为什么在这种情况下不起作用?
  • 我的错误在哪里?

“我试图简单地复制包含子元素的每个元素,其中 @attribute-id 是“exportdate”并且具有特定的文本值。”

空模板应该用于删除元素。所以目前,您的 XSL 应该删除custom-object其中“exportdate”等于“2015-09-19”,并复制其他元素。如果您想要相反的结果,请尝试使用具有相反含义的 XPath,例如:

<xsl:template 
    match="custom-object[not(object-attribute[@attribute-id='exportdate']='2015-09-19')]"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 xslt 复制包含特定子元素的父元素 的相关文章

  • 对于 xml-2-xml xslt 它将从未选择的元素输出这些文本

    我想通过 xslt 将一个 xml 传输到另一个 xml 下面是我的输入xml
  • 横向模式下视频视图不是全屏

    我正在使用用 xml 设计的视频视图 该视频在纵向模式下为全屏 但当切换到横向模式时 它会左对齐 并且宽度和高度都会换行 而不是全屏 我参考了这些 但仍然没有解决这个问题 全屏视频视图未居中 https stackoverflow com
  • 使用 boost 将命名空间添加到 XML

    我正在尝试使用 boost 生成 xml 到目前为止一切顺利 但是生成的 xml 需要有一个命名空间 所以而不是
  • XML 模式不区分大小写的简单类型字符串枚举

    我的 XML 架构 xsd 文件中需要不区分大小写的字符串枚举类型 我可以通过执行以下操作来不区分大小写
  • 即使只有一个,是否也可以始终以数组形式获取 XML 节点?

    我正在使用空手道测试 SOAP Web 服务 其中一种方法是 根据请求 响应可以返回一个或多个巧合 将 XML 响应转换为 JSON 时 如果只有一个结果 则将其解释为对象 但如果有多个结果 则将其解释为数组 有什么方法可以使给定路径始终以
  • 批量修改XML文件

    好的 所以我不太熟悉使用 For F 如果文件是静态的并且有一组可以跳过然后从中提取数据的行 我可以修改它 我目前正在尝试修改 XML 文件 该文件将具有不同数量的行 但始终具有以下内容
  • DTD 与 XSD 定义的 XML 语言的范围

    下列命题是否成立 对于每个 DTD 都有一个定义完全相同的语言的 XSD 并且对于每个 XSD 都有一个定义完全相同的语言的 DTD 或者换句话说 任何 DTD 定义的语言集合正是任何 XSD 定义的语言集合 稍微扩展一下这个问题 XML
  • XSLT 用逗号 (,) 连接值

    我需要循环遍历xml文档中的所有节点 并在值后面附加逗号 最后 在最后一个元素之后我不应该有逗号 有谁能够帮助我 感谢您 拉马纳 库马尔 你可以这样做
  • 合并2个XML文件并修改属性值

    我有两个 xml 文件 我想将它们合并并用一些属性进行一些算术 请提供一些想法 我正在使用标准 xslthttp informatik hu berlin de merge http informatik hu berlin de merg
  • 使用 java 从 XML 元素中删除空格

    我有一个 JSON 如下 String str Emp name JSON Emp id 1 Salary 20997 00 我想使用 java 将此 JSON 转换为 XML 我的 java 代码在这里 JSON json JSONSer
  • 复制除根节点和属性 XSLT 之外的 XML 文件内容

    我正在处理一个小的 XSLT 文件来复制 XML 文件的内容并删除声明和根节点 根节点具有名称空间属性 我目前正在使用它 除了现在名称空间属性现在被复制到直接子节点之外 这是到目前为止我的 xslt 文件 没什么大或复杂的
  • XSD“版本”属性语义

  • python中的编码检测库[重复]

    这个问题在这里已经有答案了 这在某种程度上与我的问题有关here https stackoverflow com questions 2305997 unicodedecodeerror problem with mechanize 我处理
  • 我们可以使用 Netbeans 7 执行 XSLT 2.0 吗?

    在当前形式下 Netbeans 仅支持 XSLT 1 0 不支持 XSLT 2 0 我们如何将 XSLT 2 0 与 Netbeans 7 结合使用 如何使 Saxon 成为 JRE 安装默认 XSLT 处理器 因此 不仅 Netbeans
  • C# Xml-使用 IXmlSerialized 序列化派生类

    我有一个与 XML 序列化兼容的基类和一个实现 IXmlSerialized 的派生类 在此示例中 基类确实实现了 IXmlSerializable using System Diagnostics using System Text us
  • 使用 PEM 证书验证 Powershell 中的 XML 签名

    我正在尝试创建一个 powershell 脚本来使用 XML 文档中的数据 然而 在进行任何工作之前 我需要通过验证签名来验证 XML 没有被篡改 我有一份用于以 PEM 格式签署 XML 的证书的公钥副本 但我不知道如何让 powersh
  • 使用 XPath 忽略/跳过已知或所有从属标签

    我使用 XPath 和 Hpple libxml2 来解析 iOS iPhone 操作系统中的 HTML 我现在想忽略某个标签 例如粗体标签 b 解析文档时 例如从代码来看 div foo b bar b div 应选择字符串 foo 和
  • 从 XML 文件中读取值

    我在用XDocument为了加载 XML 文件 包含此内容 我正在尝试读取
  • Scrapy在页面上找不到表单

    我正在尝试编写一个自动登录的蜘蛛这个网站 https www athletic net account login ReturnUrl 2Fdefault aspx 但是 当我尝试使用scrapy FormRequest from resp
  • 如何使用自定义转换器访问 jOOQ 生成的例程字段作为值?

    我在访问生成例程的字段时遇到问题PL pgSQL 用户定义函数 返回JSON 数据类型结果 已经提到this https stackoverflow com q 62535195 6805866问题 这是我的结果get all orders

随机推荐