将XML元素的名称拆分为多个名称

时间:2016-11-17 14:35:13

标签: xml xslt nodes element

我想转换这种XML格式

<CTP>
    <name>ABSA bank</name>
    <BAs.BA>bank|sector|issuer</BAs.BA>
    <altIDs.altID_label_altSystem>ABSB_BBG|ASB_Reuters</altIDs.altID_label_altSystem>
</CTP>

采用这种格式,因此我可以在从一个系统迁移到另一个系统时在集成项目中使用它。

<CTP>
    <name>ABSA bank</name>
    <BAs>
        <BA>bank</BA>
        <BA>sector</BA>
        <BA>issuer</BA>
    </BAs>
    <altIDs>
        <aldId>
            <label>ABSB</label>
            <altSystem>BBG</altSystem>
        </aldId>
        <aldId>
            <label>ASB</label>
            <altSystem>Reuters</altSystem>
        </aldId>
    </altIDs>
</CTP>

我的主要问题是如何将这些元素的名称拆分为多个元素。

我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

完成工作的searchterm是 tokenize

XSLT 1.0 递归模板,在SO上搜索tokenize xslt 1.0

XSLT 2.0 使用函数tokenize,请参阅https://www.w3.org/TR/xpath-functions/#func-tokenize

要获取元素的名称,可以使用name()

现在你“只是”必须编码。在._之后拆分,以创建所需的结果。

[用文字描述你的问题,也有帮助,因为有一个案例像'a | b | c'存储在3而不是2个子元素中吗?!]