xpath wso2로 외부 태그 제거

Nov 15 2020

wso2의 xpath로 어떻게 이것을 달성 할 수 있습니까?

예:

    <TEMP>
            <NAME>GEORGE</NAME>
            <COGNOME>MENDEZ</COGNOME>
            <BUSINESSNAME/>
            <CHANNEL>X091</CHANNEL>
        
   </TEMP>

결과:

<NAME>GEORGE</NAME>
<COGNOME>MENDEZ</COGNOME>
<BUSINESSNAME/>
<CHANNEL>X091</CHANNEL>
    

감사

답변

ShanakaPremarathna Nov 15 2020 at 09:23

생성 된 XML에는 루트 요소가 있어야합니다. 따라서 루트 요소가없는 다음 페이로드를 생성 할 수 없습니다.

<NAME>GEORGE</NAME>
<COGNOME>MENDEZ</COGNOME>
<BUSINESSNAME/>
<CHANNEL>X091</CHANNEL>

최신 정보

내가 이해 한 의견에 따르면 다음과 같은 페이로드가 속성에 저장되어 있습니다.

<ELEMENT>
     <ELEMENT_2>
        <ELEMENT_3>
           <ID>173993</ID>
        </ELEMENT_3>
     </ELEMENT_2>
</ELEMENT>

다음과 같은 또 다른 페이로드가 있습니다. (다음 페이로드를 얻기 위해 엔드 포인트 호출을 사용했습니다)

<TEMP>
    <NAME>GEORGE</NAME>
    <COGNOME>MENDEZ</COGNOME>
    <BUSINESSNAME/>
    <CHANNEL>X091</CHANNEL>
</TEMP>

이 페이로드를 기반으로 다음 페이로드를 갖도록 초기 속성을 보강해야합니다.

<ELEMENT>
   <ELEMENT_2>
      <ELEMENT_3>
         <ID>173993</ID>
      </ELEMENT_3>
      <NAME>GEORGE</NAME>
      <COGNOME>MENDEZ</COGNOME>
      <BUSINESSNAME />
      <CHANNEL>X091</CHANNEL>
   </ELEMENT_2>
</ELEMENT>

다음 샘플 프록시를 확인하고 요구 사항을 충족 할 수 있는지 확인할 수 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="enrichProxy"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
   <target>
      <inSequence>
         <property name="initial_payload" scope="default">
            <ELEMENT xmlns="">
               <ELEMENT_2>
                  <ELEMENT_3>
                     <ID>173993</ID>
                  </ELEMENT_3>
               </ELEMENT_2>
            </ELEMENT>
         </property>
         <call>
            <endpoint>
               <http uri-template="http://run.mocky.io/v3/7c578a1d-5427-4325-9f00-4ad7bb80dd04"/>
            </endpoint>
         </call>
         <log level="custom">
            <property expression="$body//TEMP/*" name="******"/>
         </log>
         <respond/>
      </inSequence>
   </target>
   <description/>
</proxy>