在SSIS XML索引具有不同长度(XML indexing in SSIS with differ

2019-10-29 12:10发布

我有以下XML:

<?xml version="1.0" encoding="UTF-16"?>
<APIDATA xmlns="api-com">
<ORDER EngineID="1" OrderID="66" OtherInfo="yes"><INSTSPECIFIER InstID="27" SeqID="17"/></ORDER>
<ORDER EngineID="2" OrderID="67" OtherInfo="yes"><INSTSPECIFIER InstID="28" SeqID="18"/></ORDER>
<ORDER EngineID="3" OrderID="68"><INSTSPECIFIER InstID="29" SeqID="19"/></ORDER>
</APIDATA>

我想获得所有的ID到SSIS变量在每个循环的所有订单项。 到目前为止,我可以在SSIS控制流,用下面的一个foreach循环得到的数据:

EnumerationType:  ElementCollection
OuterXPathString: //*[name() = 'ORDER']
InnerElementType: NodeText
InnerXPathString: @* | child::node()/@*

然后在变量映射我来了防空火炮的问题,即XML的线是不一样的长度。 例如:第三行不具有活动促销项目。 这导致环带误差死如果我一个变量映射到索引4。

该如何解决这个问题?

谢谢您的帮助。

Answer 1:

这一次使用@*[name() = 'EngineID'] | @*[name() = 'OrderID'] | child::node()/@*[name() = 'InstID'] | child::node()/@*[name() = 'SeqID'] @*[name() = 'EngineID'] | @*[name() = 'OrderID'] | child::node()/@*[name() = 'InstID'] | child::node()/@*[name() = 'SeqID'] @*[name() = 'EngineID'] | @*[name() = 'OrderID'] | child::node()/@*[name() = 'InstID'] | child::node()/@*[name() = 'SeqID']作为InnerXPathString。



文章来源: XML indexing in SSIS with different length
标签: xml ssis