如何使用xslt将XML Element内容复制到另一个xml文件?

时间:2018-06-11 08:27:46

标签: xml xslt

我需要将一个xml文件中的一些数据复制到另一个xml文件中。我尝试了许多事情但没有取得任何成功。

1.xml

<head><meta name="charset" content="utf-8"/></head>

2.xml文件:

<dc:identifier id="uuid">123456789</dc:identifier>

输出文件赞:

  <head>
      <meta name="dtb:uid" content="123456789"/>
      <meta name="dtb:depth" content="1"/>
      <meta name="dtb:totalPageCount" content="0"/>
      <meta name="dtb:maxPageNumber" content="0"/>
   </head>

XSLT文件:

    <xsl:template match="html:head">
<head>
<meta name="dtb:uid" content="{html:meta[@name='dc:identifier']/@content}"/>
<meta name="dtb:depth" content="{max(//html:li/count(ancestor::html:li))+1}"/>
<xsl:variable name="totalPageCount" select="count(//html:nav[@epub:type='page-list']/html:ol/html:li)"/>
<meta name="dtb:totalPageCount" content="{$totalPageCount}"/>
<xsl:variable name="maxPageNumber" select="number((//html:nav[@epub:type='page-list']/html:ol/html:li)[last()])"/>
<meta name="dtb:maxPageNumber" content="{if (string($maxPageNumber)='NaN') then $totalPageCount else $maxPageNumber}"/>
<xsl:apply-templates select="html:meta[not(@name='dc:identifier')]"/>
</head>
</xsl:template>

有没有人知道怎么做?

1 个答案:

答案 0 :(得分:0)

假设共享XSLT代码正在3.xml上应用(未共享),您可以使用{{从dc:identifier2.xml的值转换为XSLT代码1}}功能。

请修改以下XSLT代码

document()

<meta name="dtb:uid" content="{html:meta[@name='dc:identifier']/@content}"/>

请确保在XSLT中正确映射了所有名称空间。