2012-09-10 97 views
0

可能重複:
Merge 2 XML files and modifying the attribute values合併2 XSLT和更改的XML文件屬性值

我有兩個XML文件。我想合併它們並用幾個屬性進行一些算術運算。請提供一些想法。我正在使用標準的xslt http://informatik.hu-berlin.de/merge來合併文件。

文件1: 覆蓋分支率= 「0.5125」 分支總= 「50」 線速= 「0.00593031875463」

文件2: 覆蓋分支率= 「0.5」 分支總= 「40」 的線速率= 「1.0」

預期結果文件 覆蓋分支率= 「(0.5125 * 50 + 05 * 40)/(50 + 40)」 分支總= 「50」 啉速度=「0.00593031875463」

+1

請顯示您到目前爲止嘗試過的方法。 SO上的人願意提供幫助,但如果你不願意自己投資一些工作,則不會。請閱讀[FAQ]和[Ask]。 –

+0

你基本上在這裏問過這個問題三次,並沒有確認你收到的幫助。絕對不酷。 –

+0

感謝您批准我的回答@Messiah –

回答

0

我假設文件1和文件2每個都包含一個單一的元素,<coverage>與att您提供的肋骨。我還假定總是會有兩個文件,而且不會再有更多。我不確定所有的計算如何爲你的結果起作用,所以我猜測。爲了使計算更加簡潔和可讀,我使用了更多的變量。

你在尋求幫助時應該更加明確。

<?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>