如何从xml中提取附件,包括名称和大小?

时间:2014-06-02 19:12:23

标签: xml xslt

我在XML文件中有以下数据

<attachment name="data.pdf" size="104302">
DATA
</attachment>

我想将完整的东西提取到新的xml中,但我只是

<attachment>
DATA
</attachment>

我的xslt文件有

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" indent="yes"/>
<xsl:strip-space elements="*"/>
  <xsl:template match="/">
    <xsl:for-each select="//attachment" >
      <xsl:copy>
            <xsl:apply-templates select="node()" />
      </xsl:copy>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

select="node()"不包含属性,仅包含子节点(元素,文本节点,注释和处理指令)。但是用

替换整个for-each会更简单
<xsl:copy-of select="//attachment" />

但请注意,如果原始输入中有多个attachment元素,则不会生成格式良好的XML输出,因为结果中最终会有多个根级元素