我陷入了这个问题。
我有两个输入字段
1)外部注释
2)内部注释
我想将它们映射到目标节点“评论”
如果
外部笔记即将来临(做贴图)
内部笔记即将来临(做贴图)
两个filds即将来临(做映射)
没有字段即将来临(不要映射)
我执行了以下任务:
1)如果节点即将到来,检查逻辑是否存在。
2)使用Equal fuctoid确认该值是否为真。 Logical existance = true - >传递给OR运算符
3)对两个字段执行逻辑OR的逻辑OR。
4)值映射以设置值。
此逻辑适用于以下情况:
a)InternalNotes来(映射成功)
b)两个值(inter& exter)都来了(Mapped Successfully)
c)外部笔记来了(未映射)
我已经尝试了很多,但没有得到任何为什么没有映射这个外部值。
请帮帮我。
由于
以下应该是以下输入消息的输出:
输入1:
<InternalNotes>
<Value>Internal notes value</Value>
</InternalNotes>
输出1:
<Comments>
<Name>Comments</Name>
<Operation>Append</Operation>
<Value>Internal notes value</Value>
</Comments>
输入2:
<ExternalNotes>
<Value>External notes value</Value>
</ExternalNotes>
输出2:
<Comments>
<Name>Comments</Name>
<Operation>Append</Operation>
<Value>External notes value</Value>
</Comments>
输入3:
<ExternalNotes>
<Value>External notes value</Value>
</ExternalNotes>
<InternalNotes>
<Value>Internal notes value</Value>
</InternalNotes>
输出3:
<Comments>
<Name>Comments</Name>
<Operation>Append</Operation>
<Value>External notes value .
Internal Notes value
</Value>
</Comments>
答案 0 :(得分:0)
看起来您的地图有效,尝试删除Equality functoids,只需将Existance直接映射到LogicalOr。
P.S。如果我没有得到您的想法,请提供您的输入示例和预期输出。
答案 1 :(得分:0)
如果您使用xslt
- look here将地图转换为xslt
,则这是一个简单的映射。
例如:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/xml">
<xsl:if test="InternalNotes or ExternalNotes">
<!-- . and newline delimiter if both elements present, else none -->
<xsl:variable name="delimiter">
<xsl:if test="InternalNotes and ExternalNotes">. </xsl:if>
</xsl:variable>
<Comments>
<Name>Comments</Name>
<Operation>Append</Operation>
<Value>
<xsl:value-of select="concat(InternalNotes/Value/text(),
$delimiter, ExternalNotes/Value/text())"/>
</Value>
</Comments>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
这将转换以下内容:
<xml>
<ExternalNotes>
<Value>External notes value</Value>
</ExternalNotes>
<InternalNotes>
<Value>Internal notes value</Value>
</InternalNotes>
</xml>
对此:
<?xml version="1.0" encoding="utf-8"?>
<Comments>
<Name>Comments</Name>
<Operation>Append</Operation>
<Value>Internal notes value.
External notes value</Value>
</Comments>
你没有提到没有匹配的输出应该是什么,但你显然至少需要一个根元素。我确信更优雅的xslt解决方案是可能的,但你明白了这一点:)