我将收到如下的fIXML消息。
<FIXML v="4.4" xsi:schemaLocation="../../schema/fixml-main-4-4.xsd" xmlns="http://www.fixprotocol.org/FIXML-4-4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Main attr1="19000" attr2="10">
<Hdr hattr1="ABC" hattr2="DEF"/>
<Insert1 I1attr1 ="2008-08" I1attr2 ="20080810"/>
<Insert2 I2attr1="A111C" I2attr2 ="123">
<sub ID="1AC"/>
</Insert2>
<Insert2 I2attr1="A222C" I2attr2 ="456">
<sub ID="1BC"/>
</Insert2>
</Main>
</FIXML>
由此我需要检查强制部分是否存在,如果不存在则必须通过自动关闭标记来添加它们。
在<Hdr ..>
元素检查<Insert1../>
元素是否存在之后,如果存在,请将该部分保留原样,如果不存在,则必须在{{之后添加<Insert1/>
自我关闭标记1}}元素,然后检查<Hdr ..>
是否存在<Insert2.../>
之后保留该元素或<Insert1 .../>
如果不存在则在<Insert1/>
之后添加。
形成像这样的xml。
<Insert1/>
请建议。
提前致谢。
答案 0 :(得分:0)
您可以根据所使用的xslt版本以不同的方式实现您的目标。 我使用过XSLT 1.0。 根据你的要求,我已经假定你已经知道了元素排列和元素的顺序。
Settings
变量&#34; checkData&#34;包含您需要检查已安排的元素列表。唯一的另一件事是你必须使用XSLT解析器的节点集函数