从另一个移动块添加一个节点作为属性并删除块

奥罗斯科03

我需要通过删除或处理一个块来将这个 XMl 转换为另一个块,同时像所需的输出一样格式化这个块,我被困在如何进行这种格式化

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<output>
    <cars>
        <car>
          <id>1</id>
          <brand>Audi</brand>
          <type>A3</type>
          <license>B-01-TST</license>
        </car>
        <car>
          <id>2</id>
          <brand>Volkwagen</brand>
          <type>Golf</type>
          <license>IF-02-TST</license>
        </car>
    </cars>
    <distances>
        <distance>
          <id_car>1</id_car>
          <date>20110901</date>
          <distance>111</distance>
        </distance>
        <distance>
          <id_car>1</id_car>
          <date>20110902</date>
          <distance>23</distance>
        </distance>
        <id_car>2</id_car>
          <date>20110901</date>
          <distance>92</distance>
        </distance>
        <distance>
          <id_car>2</id_car>
          <date>20110902</date>
          <distance>87</distance>
        </distance>
    </distances>
</output>

进入这个输出:

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<output>
<cars>
<car>
  <id>1</id>
  <brand>Audi</brand>
  <type>A3</type>
  <license>B-01-TST</license>
  <distances>
    <distance day="20110901">111</distance>
    <distance day="20110902">23</distance>
  </distances>
</car>
<car>
  <id>2</id>
  <brand>Volkwagen</brand>
  <type>Golf</type>
  <license>IF-02-TST</license>
  <distances>
    <distance day="20110901">92</distance>
    <distance day="20110902">87</distance>
  </distances>
</car>
</cars>
</output>

到目前为止,我只能删除距离块并将其添加到正确的位置,但是如何获取按 car/id 组织的距离并将其与日期标签作为属性 day 添加到距离中?这是我到目前为止所做的:

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

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

<xsl:template match="distances" />

<xsl:template match="license">
    <xsl:copy-of select="."/>
    <distances></distances> 
</xsl:template>

</xsl:stylesheet>
马丁·霍南

使用一个键来跟随交叉引用,然后编写一个模板来转换这些引用的元素:

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

    <xsl:strip-space elements="*"/>
    <xsl:output indent="yes"/>

    <xsl:key name="dist" match="distances/distance" use="id_car"/>

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

    <xsl:template match="distances" />

    <xsl:template match="license">
        <xsl:next-match/>
        <distances>
            <xsl:apply-templates select="key('dist', ../id)"/>
        </distances> 
    </xsl:template>

    <xsl:template match="distance">
        <distance day="{date}">
            <xsl:value-of select="distance"/>
        </distance>
    </xsl:template>

</xsl:transform>

http://xsltransform.net/a9GixV

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在另一个块中执行块

来自分类Dev

从另一个块创建块

来自分类Dev

块悬停更高的另一个块

来自分类Dev

BEM:如何确保一个块中的 CSS 值覆盖另一个块中定义的属性?

来自分类Dev

一个CSS块可以使用另一个块吗?

来自分类Dev

在另一个块中的 IF 语句的前一个块中调用变量

来自分类Dev

Resharper可以将任何代码块移动到另一个#region吗?

来自分类Dev

缓存Rdds时从另一个Spark节点获取块时出错

来自分类Dev

从另一个函数调用块

来自分类Dev

变量在另一个块中也可见

来自分类Dev

如何绘制来自另一个块的数据?

来自分类Dev

变量在另一个块中也可见

来自分类Dev

使用另一个表作为输入丢弃表中的数据块

来自分类Dev

为什么Python docx或lxml将属性从一个节点移动到另一个节点?

来自分类Dev

使用一个模板作为属性(按值),使用另一个模板作为(父)节点

来自分类Dev

使用一个模板作为属性(按值),使用另一个模板作为(父)节点

来自分类Dev

将 html 元素从一个节点移动到另一个节点

来自分类Dev

使用jQuery将HTML的一个块映射到另一个

来自分类Dev

一个div块高于另一个

来自分类Dev

如何使一个脚本块写入另一个脚本?

来自分类Dev

XSLT根据另一个节点的属性删除节点

来自分类Dev

从另一个块设备的偏移量创建一个块设备条目

来自分类Dev

我希望我的块在 HTML 中悬停在另一个块上时与另一个块重叠

来自分类Dev

如何通过单击另一个块在可见窗口中显示块

来自分类Dev

删除结构节点导致另一个问题

来自分类Dev

SQL移动属性到另一个表

来自分类Dev

SimpleSamlphp:在另一个属性内添加属性

来自分类Dev

将特定属性从一个对象移动到另一个对象

来自分类Dev

Azure Linux删除并添加另一个磁盘

Related 相关文章

  1. 1

    在另一个块中执行块

  2. 2

    从另一个块创建块

  3. 3

    块悬停更高的另一个块

  4. 4

    BEM:如何确保一个块中的 CSS 值覆盖另一个块中定义的属性?

  5. 5

    一个CSS块可以使用另一个块吗?

  6. 6

    在另一个块中的 IF 语句的前一个块中调用变量

  7. 7

    Resharper可以将任何代码块移动到另一个#region吗?

  8. 8

    缓存Rdds时从另一个Spark节点获取块时出错

  9. 9

    从另一个函数调用块

  10. 10

    变量在另一个块中也可见

  11. 11

    如何绘制来自另一个块的数据?

  12. 12

    变量在另一个块中也可见

  13. 13

    使用另一个表作为输入丢弃表中的数据块

  14. 14

    为什么Python docx或lxml将属性从一个节点移动到另一个节点?

  15. 15

    使用一个模板作为属性(按值),使用另一个模板作为(父)节点

  16. 16

    使用一个模板作为属性(按值),使用另一个模板作为(父)节点

  17. 17

    将 html 元素从一个节点移动到另一个节点

  18. 18

    使用jQuery将HTML的一个块映射到另一个

  19. 19

    一个div块高于另一个

  20. 20

    如何使一个脚本块写入另一个脚本?

  21. 21

    XSLT根据另一个节点的属性删除节点

  22. 22

    从另一个块设备的偏移量创建一个块设备条目

  23. 23

    我希望我的块在 HTML 中悬停在另一个块上时与另一个块重叠

  24. 24

    如何通过单击另一个块在可见窗口中显示块

  25. 25

    删除结构节点导致另一个问题

  26. 26

    SQL移动属性到另一个表

  27. 27

    SimpleSamlphp:在另一个属性内添加属性

  28. 28

    将特定属性从一个对象移动到另一个对象

  29. 29

    Azure Linux删除并添加另一个磁盘

热门标签

归档