繁体   English   中英

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

[英]how to copy XML Element content to another xml file using 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>

有谁知道如何做吗?

假设将共享的XSLT代码应用于3.xml (不共享),则可以使用document()函数将2.xmldc:identifier的值2.xml到XSLT代码中。

请修改以下XSLT代码

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

<meta name="dtb:uid" content="{document('2.xml')/dc:identifier}"/>

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM