2017-03-31 43 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(加入)的只有一件事,错误是说你需要两个或更多的东西加入一起。