我通过xmlsource解析SSIS中的xml文档。它没有任何根标签。所以我试图通过XSLT将根标签添加到我的xml文档中,但是将错误视为
[XML任务]错误:出现以下错误消息时出错:“有多个根元素。第11行,第2位。”。
用于添加根元素的XSL是什么?请帮忙..这是非常紧急的..
请在下面找到xml源
<organizational_unit>
<box_id>898</box_id>
<hierarchy_id>22</hierarchy_id>
<parent_box_id>0</parent_box_id>
<code>Team</code>
<description />
<name>CAPS Teams</name>
<manager_title />
<level>0</level>
</organizational_unit>
<organizational_unit>
<box_id>967</box_id>
<hierarchy_id>31</hierarchy_id>
<parent_box_id>0</parent_box_id>
<code>main</code>
<description />
<name>Protegent</name>
<manager_title />
<level>0</level>
<organizational_unit>
<box_id>968</box_id>
<hierarchy_id>31</hierarchy_id>
<parent_box_id>967</parent_box_id>
<code>19L</code>
<description>19L</description>
<name>19L</name>
<level>1</level>
<managers>
<manager>
<hierarchy_mgr_id>243</hierarchy_mgr_id>
<hierarchy_id>31</hierarchy_id>
<box_id>968</box_id>
<rep_id>19499</rep_id>
<unique_rep_id>100613948</unique_rep_id>
<first_name>Ed</first_name>
<last_name>Kill</last_name>
</manager>
</managers>
</organizational_unit>
<organizational_unit>
<box_id>1152</box_id>
<hierarchy_id>31</hierarchy_id>
<parent_box_id>967</parent_box_id>
<code>UNKNOWN_m</code>
<description>Unknown Reps</description>
<name>Unknown Reps</name>
<level>1</level>
</organizational_unit>
</organizational_unit>
答案 0 :(得分:0)
你使用哪个XSLT处理器,你如何使用它?我通常不建议使用字符串处理来构造XML,但如果你有一个没有根元素的片段,那么也许做字符串连接"<root>" + fragment + "</root>"
是获得格式良好的文档的最简单方法。 XSLT可以处理片段,但是你如何做到这取决于你使用的XSLT处理器或XML解析器,例如.NET可以使用XmlReader
XmlReaderSettings
ConformanceLevel
设置为片段,然后可以加载到XPathDocument
(用于处理XSLT 1.0和XslCompiledTransform
),也可能加载到Saxon的XdmNode
(虽然我不确定我是否记得正确)。
然后,样式表就可以完成
<xsl:template match="/">
<root>
<xsl:copy-of select="node()"/>
</root>
</xsl:template>
将所有顶级节点包装成root
元素。