1

我正在通过 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>
4

1 回答 1

0

那么您使用哪个 XSLT 处理器,您是如何使用它的呢?我通常不建议使用字符串处理来构造 XML,但是如果您有一个没有根元素的片段,那么进行字符串连接可能"<root>" + fragment + "</root>"是获得格式良好的文档的最简单方法。XSLT 可以处理片段,但您如何做到这一点取决于您使用的 XSLT 处理器或 XML 解析器,例如 .NET 可以使用withXmlReader设置为片段,然后可以将其加载到(用于使用 XSLT 1.0 和 处理)和可能也与撒克逊人有关(尽管我不确定我是否记得正确)。XmlReaderSettingsConformanceLevelXPathDocumentXslCompiledTransformXdmNode

然后样式表会简单地做

<xsl:template match="/">
  <root>
    <xsl:copy-of select="node()"/>
  </root>
</xsl:template>

将所有顶级节点包装到一个root元素中。

于 2012-08-02T10:28:45.533 回答