2015-05-18 29 views
0

我試圖實現一種場景,即在輸出中不存在輸入中的元素,但輸出中確實存在該元素。Altova Mapforce中的映射問題

例如:如果我的輸入是

<?xml version="1.0" encoding="UTF-8"?> 
<getMyClsScheduleResponse> 
    <RegisteredClass> 
     <ClassNumber>30788</ClassNumber> 
    </RegisteredClass> 
    <RegisteredClass> 
     <ClassNumber>30524</ClassNumber> 
     <Instructor> 
      <InstructorName>Bernstein,Dennis S</InstructorName> 
      <LastName>Bernstein</LastName> 
      <FirstName>Dennis</FirstName> 
      <Uniqname>DSBAERO</Uniqname> 
      <InstructorRole>Primary Instructor</InstructorRole> 
     </Instructor> 
    </RegisteredClass> 
    <RegisteredClass> 
     <ClassNumber>11786</ClassNumber> 
     <Instructor> 
      <InstructorName>Gluskich,Kari E</InstructorName> 
      <LastName>Gluskich</LastName> 
      <FirstName>Kari</FirstName> 
      <Uniqname>KARI</Uniqname> 
      <InstructorRole>Secondary Instructor</InstructorRole> 
     </Instructor> 
     <Instructor> 
      <InstructorName>Grocech,Marian Renee</InstructorName> 
      <LastName>Grocech</LastName> 
      <FirstName>Marian</FirstName> 
      <Uniqname>MARIANGR</Uniqname> 
      <InstructorRole>Primary Instructor</InstructorRole> 
     </Instructor> 
    </RegisteredClass> 
</getMyClsScheduleResponse> 

我期待的

<?xml version="1.0" encoding="UTF-8"?> 
<getMyClsScheduleResponse> 
    <RegisteredClasses> 
     <Title>30788</Title> 
     <Instructor/> 
    </RegisteredClasses> 
    <RegisteredClasses> 
     <Title>30524</Title> 
     <Instructor> 
      <Name>Bernstein,Dennis S</Name> 
      <Role>Primary Instructor</Role> 
      <Email>DSBAERO</Email> 
     </Instructor> 
    </RegisteredClasses> 
    <RegisteredClasses> 
     <Title>11786</Title> 
     <Instructor> 
      <Name>Gluskich,Kari E</Name> 
      <Role>Secondary Instructor</Role> 
      <Email>KARI</Email> 
     </Instructor> 
     <Instructor> 
      <Name>Grocech,Marian Renee</Name> 
      <Role>Primary Instructor</Role> 
      <Email>MARIANGR</Email> 
     </Instructor> 
    </RegisteredClasses> 
</getMyClsScheduleResponse> 

我試圖做到這一點使用的Altova MapForce的輸出。我已經使用了存在和不存在的功能,但它並沒有給我帶來有利的結果。

請參閱映射 Mapping using exists function

但結果並不如預期。

<?xml version="1.0" encoding="UTF-8"?> 
<getMyClsScheduleResponse > 
    <RegisteredClasses> 
     <Title>30788</Title> 
     <Instructor/> 
    </RegisteredClasses> 
    <RegisteredClasses> 
     <Title>30524</Title> 
     <Instructor> 
      <Name>Bernstein,Dennis S</Name> 
      <Role>Primary Instructor</Role> 
      <Email>DSBAERO</Email> 
     </Instructor> 
    </RegisteredClasses> 
    <RegisteredClasses> 
     <Title>11786</Title> 
     <Instructor> 
      <Name>Gluskich,Kari E</Name> 
      <Name>Grocech,Marian Renee</Name> 
      <Role>Secondary Instructor</Role> 
      <Role>Primary Instructor</Role> 
      <Email>KARI</Email> 
      <Email>MARIANGR</Email> 
     </Instructor> 
    </RegisteredClasses> 
</getMyClsScheduleResponse> 

有人可以幫助我與映射嗎?

感謝 Kranthi

+0

你嘗試源講師節點直接連接到輸出節點指導員(不使用任何函數)? –

回答

0

我有類似的事情發生。在找到更好的方法之前,這裏有一個用戶自定義函數,在此期間,如果輸入值爲空,強制爲輸出提供一個空節點。將節點輸出連接到教師節點,並將代碼輸出連接到您的值。如果需要,您可以用複雜類型替換代碼輸出。

example