xml - 使用 XSLT 添加/插入子元素

标签 xml xslt

我有以下情况:

我需要将子元素添加到现有的 XML 标记。

我当前的 XML 看起来像这样,它包含一个空的(自动关闭的)“<attr tag=.../>”:

<?xml version="1.0" encoding="UTF-8"?>
<dataset>
...
<attr tag="00081110" vr="SQ" pos="-1" name="Referenced Study Sequence" len="-1"/>
...
</dataset>

转换后它应该看起来像这样,添加/插入了 2 个子元素(由 <item> 元素包围):

<?xml version="1.0" encoding="UTF-8"?>
<dataset>
...
<attr tag="00081110" vr="SQ" pos="-1" name="Referenced Study Sequence" len="-1">
  <item id="1" pos="28" len="-1">
    <attr tag="00081150" vr="UI" pos="36" name="Referenced SOP Class UID" vm="0" len="3">991</attr>
    <attr tag="00081155" vr="UI" pos="44" name="Referenced SOP Instance UID" vm="0" len="3">992</attr>
  </item>
</attr>

...
</dataset>

我怎样才能做到这一点?我尝试了各种随机设置,但在我最好的尝试中,我最终将父元素 (tag="00081110") 替换为子元素。

最佳答案

<xsl:template match="attr">
  <xsl:copy>
    <xsl:copy-of select="@*" />

    <item id="1" pos="28" len="-1">
      <attr tag="00081150" vr="UI" pos="36" name="Referenced SOP Class UID" vm="0" len="3">991</attr>
      <attr tag="00081155" vr="UI" pos="44" name="Referenced SOP Instance UID" vm="0" len="3">992</attr>
    </item>

  </xsl:copy>
</xsl:template>

关于xml - 使用 XSLT 添加/插入子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18912450/

相关文章:

java - 为什么我的 xpath 不起作用?

python - 如何输出 SUD 生成/接收的内容?

xml - 在哪里可以浏览常见架构?

xml - 使用 XSLT 进行简单的 XML 重构

design-patterns - XSLT 样式表设计模式 - 在不同的样式表中分离公共(public)模板和特定模板

xml - 无法获取内容的值(value) :encoded from Wordpress RSS

java - Xerces-J 对未解析的 xsi :type? 的宽松验证失败是否正确

android - 如何在 XML 中添加 OR 运算符?

xml - XSLT 附录命名空间 CFDI

java - 从 jdeveloper 的 xml+xslt 生成 html