我假设文件 1 和文件 2 都由一个元素组成<coverage>
, 具有您提供的属性。我还假设总会有两个文件,仅此而已。我不确定所有计算如何为您的结果工作,所以我猜了。为了使计算更加简洁易读,我使用了比必要更多的变量。
在寻求帮助时,您应该更加明确。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:variable name = "b1" select="document('file1.xml')/coverage"/>
<xsl:variable name = "b2" select="document('file2.xml')/coverage"/>
<xsl:variable name = "b1_br" select="$b1/@branch-rate"/>
<xsl:variable name = "b1_bt" select="$b1/@branch-total"/>
<xsl:variable name = "b1_lr" select="$b1/@line-rate"/>
<xsl:variable name = "b2_br" select="$b2/@branch-rate"/>
<xsl:variable name = "b2_bt" select="$b2/@branch-total"/>
<coverage>
<xsl:attribute name="branch-rate">
<xsl:value-of select="(($b1_br * $b1_bt) + ($b2_br * $b2_bt)) div ($b1_bt + $b2_bt)"/>
</xsl:attribute>
<xsl:copy-of select="$b1/@branch-total"/>
<xsl:copy-of select="$b1/@line-rate"/>
</coverage>
</xsl:template>
</xsl:stylesheet>