2013-02-09 64 views
0

我正在研究WSO2 ESB代理服務,其中需要完成XSLT轉換,從XML值的部分,並與另一.dsb文件WSO2 ESB-如何使用XLST調解器檢索具有xml標記的屬性值,所有獲得''爲'<'

這裏的結果結合起來是我的財產有低於價值

*<xslt key="conf:/input/proxy_input_transform.xslt"/> 
<property name="DETAILS" expression="//QUARTERLY_DATA" /> 
<QUARTERLY_DATA> 
<ROW> 
<SAP_CUST_ID>0000905133</SAP_CUST_ID> 
<AOC_FLAG>N</AOC_FLAG> 
<LOB>AppleCare</LOB>...." 

但當XLST被調用.dbs文件中outsequence後進行

<xslt key="conf:/output/proxy_output_transform.xslt" > 
     <property name="details" expression value="get-property('DETAILS')"/> 
    </xslt> 

我得到了轉換後的xml中的值,如下所示。

&lt;QUARTERLY_DATA> 
&lt;ROW> 
&lt;SAP_CUST_ID>0000905133&lt;/SAP_CUST_ID> 
&lt;AOC_FLAG>N&lt;/AOC_FLAG> 
&lt;LOB>AppleCare&lt;/LOB>.... 

我不知道是爲什麼「<」是越來越改爲「&amplt;」。 有人可以提供他們的發現嗎? 注意:我能夠成功地從屬性中檢索值,該屬性只有一個值,而不是XML標記。在消息上下文中放置xml時,將屬性中的類型設置爲「OM」。 這裏是我的代理服務

<?xml version="1.0" encoding="UTF-8"?> 
<proxy xmlns="http://ws.apache.org/ns/synapse" name="TQS_SIST_BILLING_PCH_N" transports="https http" startOnLoad="true" trace="enable" statistics="enable"> 
    <target> 
    <inSequence onError="conf:/tqs/common/FaultHandler_Seq.xml"> 
     <property xmlns:sist="http://sist.tqs.ist.apple.com/sist_request" name="IN_SAP_SOLD_TO" expression="//sist:ACC_BILLING_REQ_PCH_FLAG_N/sist:CUST_SRCH_INPUT/sist:SAP_SOLD_TO"/> 
     <xslt key="conf:/tqs/sist/billing_pch_n/proxy_input_transform.xslt"/> 
      <property name="REQUEST" value="DETAILS_REQUEST"/> 
      <property name="SAP_CUST_ID" expression="//ACC_BILLING_REQ_PCH_FLAG_N" type="OM"/> 
       <send> 
        <endpoint key="conf:/tqs/sist/billing_pch_n/ds_endpoint.xml"/> 
       </send> 
    </inSequence> 
    <outSequence onError="conf:/tqs/common/FaultHandler_Seq.xml"> 
     <switch source="get-property('REQUEST')"> 
      <case regex="DETAILS_REQUEST"> 
       <log level="custom"> 
        <property name="sequence" value="outSequence - response from Details Service"/> 
       </log> 
       <property name="DETAILS" expression="//QUARTERLY_DATA"/> 
       <log level="custom" separator=","> 
        <property name="DETAILS------at entry level" expression="get-property('DETAILS')"/> 
       </log> 
       <enrich> 
        <source type="property" clone="true" property="SAP_CUST_ID"/> 
        <target type="body"/> 
       </enrich> 
       <log level="full"> 
        <property name="sequence" value="outSequence - request for Summary Service"/> 
       </log> 
       <property name="REQUEST" value="SUMMARY_REQUEST"/> 
       <send> 
        <endpoint key="conf:/tqs/sist/billing_pch_n/ds_summary_endpoint.xml"/> 
       </send> 
      </case> 
      <case regex="SUMMARY_REQUEST"> 
       <log level="full"> 
        <property name="sequence" value="outSequence - response from Summary Service"/> 
       </log> 
       <log level="custom" separator=","> 
        <property name="DETAILS------222222" expression="get-property('DETAILS')"/> 
       </log> 
       <xslt key="conf:/tqs/sist/billing_pch_n/proxy_output_transform.xslt"> 
        <property name="details" expression="get-property('DETAILS')"/> 
       </xslt> 
       <send/> 
      </case> 
     </switch> 


    </outSequence> 
</target> 

回答

0

我認爲問題是在你的XSLT,您可以使用 「輸出方法」 作爲text.Use output method="xml"

如:<xsl:output method="xml" version="1.0" encoding="UTF-8" />

+0

感謝您的回覆! 不,我沒有使用text.This是我使用過的xslt | ...... – siri 2013-02-11 03:39:33

+0

你可以發佈你的突觸配置嗎? – Ratha 2013-02-11 04:35:31

+0

對於我而言,發佈 – siri 2013-02-11 05:18:55

0

燦您嘗試通過直接訪問配置的.xml文件來編輯配置文件。只需使用文本編輯器進行所有配置編輯,然後嘗試運行您的場景。有時,當您在管理控制檯中編輯配置時,這類字符將包含在配置文件中。你可以試試這個嗎?

相關問題