从Universe数据库生成XML文档

时间:2012-04-11 07:55:26

标签: xml xslt universe

我需要从Universe数据库生成XML文档。 这些XML文件是SSIS包的源代码。首先,我必须生成XML文件。 为此,我使用以下命令。 选择第一个1000 列表TOXML元素 它返回1000条记录,很好。 我这里有一些问题, 1.如何指定条件以仅选择满意的记录 一个。名称如“S%”(SQL Server)的示例 2.某些字段具有多个值,如

<RECORD>
<BRANCH>A</BRANCH>
<SUB_BRANCH>A1</SUBBRANCH>
<SUB_BRANCH>A2</SUBBRANCH>
<SUB_BRANCH>A3</SUBBRANCH>
</RECORD>
<RECORD>
<BRANCH>B</BRANCH>
<SUB_BRANCH>B1</SUBBRANCH>
<SUB_BRANCH>B2</SUBBRANCH>
</RECORD>
<RECORD>
<BRANCH>C</BRANCH>
<SUB_BRANCH>C1</SUBBRANCH>
</RECORD>

由此我想根据

制作单独的记录

如下所示:

<RECORD>
<BRANCH>A</BRANCH>
<SUB_BRANCH>A1</SUBBRANCH>
</RECORD>
<BRANCH>A</BRANCH>
<SUB_BRANCH>A2</SUBBRANCH>
</RECORD>
<BRANCH>A</BRANCH>
<SUB_BRANCH>A3</SUBBRANCH>
</RECORD>
<RECORD>
<BRANCH>B</BRANCH>
<SUB_BRANCH>B1</SUBBRANCH>
</RECORD>
<BRANCH>B</BRANCH>
<SUB_BRANCH>B2</SUBBRANCH>
</RECORD>
<RECORD>
<BRANCH>C</BRANCH>
<SUB_BRANCH>C1</SUBBRANCH>
</RECORD>

这可能吗?

谢谢,

2 个答案:

答案 0 :(得分:0)

我不明白选择的事情,所以这里只是评论XSL部分。 在处理时,源XML存在一些问题。首先,您需要一个根元素才能处理它。其次,您的SUB_BRANCH似乎以SUBBRANCH关闭(没有下划线),因此您的XML无效。 假设这些是固定的:

<xsl:template match="RECORD">
    <xsl:element name="RECORD">
    <xsl:for-each select=".//SUB_BRANCH">
        <xsl:element name="BRANCH">
            <xsl:value-of select="../*"/>
        </xsl:element>
        <xsl:element name="SUB_BRANCH">
            <xsl:value-of select="node()"/>
       </xsl:element>

    </xsl:for-each>
        </xsl:element>
</xsl:template>

将是一种在输出中为您提供所需内容的方法,但我强调,它只会在您修复源数据时生效(如果这是自动生成的,无论生成什么)

答案 1 :(得分:0)

您的SELECT可能如下所示

SELECT filename WITH fieldname LIKE ... something ... AND WHEN mvfieldname = somethingelse

WITH子句将处理多值字段中单值字段和子值的WHEN子句