2011-10-19 60 views

回答

1

如果你喜歡做自己的XSLT: (我檢查缺少的元素,爲空值,xsi:nil - 因此如果不適用,刪除)

<xsl:choose> 
    <xsl:when test="not(s0:inElement) 
        or s0:inElement[normalize-space(.) = ''] 
        or string(s0:inElement/@xsi:nil) = 'true'"> 
     ... Default here, e.g. leave this blank, 
      ... or if you want nil then <ns1:outElement xsi:nil="true"/> 
    </xsl:when> 
    <xsl:otherwise> 
     <ns1:outElement> 
      <xsl:value-of select="s0:inElement/text()" /> 
     </ns1:outElement> 
    </xsl:otherwise> 
</xsl:choose> 
+0

xslt解決方案看起來不錯。 – marko

+0

看看這裏看看如何將視覺地圖轉換爲XSLT http://stackoverflow.com/questions/3716608/biztalk-2010-mapping-an-xsd-with-a-lot-of-elements-with-the -same名/ 3718014#3718014 – StuartLC

7

要抑制目標中的元素,請使用值映射functoid。

  1. 將有問題的元素連接到LOGICAL EXISTENCE functoid。
  2. LOGICAL EXISTENCE functoid連接到LOGICAL AND functoid。
  3. 將元素functoid連接到NOT EQUALS functoid。
  4. NOT EQUALS functoid中,將Condition2設置爲BLANK。
  5. NOT EQUALS functoid連接到LOGICAL AND functoid。
  6. LOGICAL AND functoid連接到VALUE MAP functoid。
  7. 將元素連接到VALUE MAP functoid。
  8. VALUE MAP functoid連接到目標元素。

按順序執行這些步驟。下面的屏幕截圖應該有所幫助:

sample map

HTH

+1

我只是通常只是使用> functoid,並比較它是否>單個空間。然後你有一個邏輯functoid而不是3. – NealWalters