2017-03-31 77 views
1

我有以下XSLT定義XSLT轉換不工作

<?xml version="1.0" encoding="UTF-8"?> 

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
       xmlns:fo="http://www.w3.org/1999/XSL/Format" > 
    <xsl:output method="text" omit-xml-declaration="yes" indent="yes"/> 
    <xsl:template match="/"> 
     <xsl:value-of select="concat(//RedemptionFileName)"/> 
      <xsl:for-each select="//ErrorMessageList/ErrorMessage"> 
       <xsl:value-of select="concat(',',OrderNumber,',',OrderLineItemNumber,',',ErrorCode)"/> 
      </xsl:for-each> 
    </xsl:template> 
</xsl:stylesheet> 

來變換分析如下

<?xml version="1.0" encoding="utf-8"?> 
<ReceiptDetails xmlns="http://centivesolutions.com/AAA_Receipt.xsd"> 
    <schemaVersion>10.4</schemaVersion> 
    <RedemptionFileName>IncommBIFCFS_Order_20140319110741741.xml</RedemptionFileName> 
    <ErrorMessageList> 
     <ErrorMessage> 
      <OrderNumber>1615296</OrderNumber> 
      <OrderLineItemNumber>1910642</OrderLineItemNumber> 
      <ErrorCode>SNF</ErrorCode> 
      <ErrorDesc>street not found in city (finance number)</ErrorDesc> 
     </ErrorMessage> 
     <ErrorMessage> 
      <OrderNumber>1615297</OrderNumber> 
      <OrderLineItemNumber>1910643</OrderLineItemNumber> 
      <ErrorCode>SNF</ErrorCode> 
      <ErrorDesc>street not found in city (finance number)</ErrorDesc> 
     </ErrorMessage> 
     <ErrorMessage> 
      <OrderNumber>1615298</OrderNumber> 
      <OrderLineItemNumber>1910644</OrderLineItemNumber> 
      <ErrorCode>BNC</ErrorCode> 
      <ErrorDesc>PO Box not found in city (finance number)</ErrorDesc> 
     </ErrorMessage> 
     <ErrorMessage> 
      <OrderNumber>1615299</OrderNumber> 
      <OrderLineItemNumber>1910645</OrderLineItemNumber> 
      <ErrorCode>ANS</ErrorCode> 
      <ErrorDesc>address not on street</ErrorDesc> 
     </ErrorMessage> 
    </ErrorMessageList> 
</ReceiptDetails> 

數據預期的輸出應該是這樣的

IncommBIFCFS_Order_20140319110741741.xml,1615296,1910642,SNF,1615297,1910643,SNF,1615298,1910644,BNC,1615299,1910645,ANS 

當我運行一個樣本使用Netbeans IDE進行測試我得到了期望的結果,但在mule獨立服務器3.7.0上運行時會引發異常

org.apache.xpath.functions.FuncConcat only allows >1 arguments 

另外在線格式器this也說xslt是錯的。

回答

3

我想這:

<xsl:value-of select="concat(//RedemptionFileName)"/> 

應該是:

<xsl:value-of select="//RedemptionFileName" /> 

你試圖CONCAT(加入)的只有一件事,錯誤是說你需要兩個或更多的東西加入一起。