我正在尝试使用functoid从输入xml消息中获取数据。但这似乎不起作用。以下是我的XML片段
<?xml version="1.0" ?>
<ROOT>
<COMPANIES>
<COMPANY>
<NAME>FOO CORP</name>
</COMPANY>
<COMPANY>
<NAME>ACME CORP</name>
</COMPANY>
</COMPANIES>
<INFORMATIONS>
<INFORMATION>
<TESTING>
<TESTS>
<NAME>1221</NAME>
<TEST>
<TEXT>I AM SAM</TEXT>
</TEST>
</TESTS>
<TESTS>
<NAME>21</NAME>
<TEST>
<TEXT>FADFDF</TEXT>
</TEST>
</TESTS>
<TESTS>
<NAME>3001</NAME>
<TEST>
<TEXT>SGFGSDFG</TEXT>
</TEST>
</TESTS>
<TESTS>
<NAME>4569</NAME>
<TEST>
<TEXT>12312</TEXT>
</TEST>
</TESTS>
</TESTING>
<INFORMATION>
</INFORMATIONS>
</ROOT>
首先,我试图循环通过公司并获得名称“ACME CORP”。但我使用的functoid(脚本,字符串提取等)我总是得到FOO CORP。我甚至尝试了内联XSLT,但这似乎也没有用。知道如何获得第二个公司名称吗?
其次,我已将<TEXT>
直接映射到目标架构中的<node>
。我得到的只是来自<TEXT>
的2个值。并非所有<TEXT>
都映射到我的<node>
。我得到的输出是
我不明白是
我没有得到
<node>SGFGSDFG</node>
<node>12312</node>
任何人都知道我如何获得价值观?
提前致谢
欢呼声,
KARTHIK
答案 0 :(得分:1)
Q1:如何获得第二<{strong> NAME
的{{1}}?
1)添加迭代 functoid(高级Functoid)并连接到源架构中的COMPANY
节点
2)添加等于功能(逻辑Functoids)并连接到迭代 functoid
3)配置 Equal functoid;添加常量值COMPANY
4)添加值映射(展平) functoid(高级Functoid)
5)将等于的输出连接到值映射
的输入 6)将源架构的2
元素连接到值映射
7)将值映射的输出连接到目标架构元素
Q2:并非所有源NAME
元素都转换为目标TEXT
这似乎是您的映射会产生Q1的副作用,我无法重现您的错误。
检查相关元素/节点的源和目标模式的minOccurs和maxOccurs。