使用 Camel Tokenizer 语言拆分嵌套 XML

Splitting nested XML with Camel Tokenizer language

我正在尝试使用 Camel 的 XMLTokenizer 语言拆分以下 XML:

<units>
    <unit type="menu">
        <id>1</id>
        <unit type="submenu">
            <id>1</id>
        </unit>
    </unit>
    <unit type="menu">
        <id>2</id>
        <unit type="submenu">
            <id>1</id>
        </unit>
    </unit>
</units>

我的分离器是这样的:

.split().tokenizeXML("unit").streaming()

我的问题是它生成的拆分 XML 没有像这样的结束标记:

<unit type="menu">
    <id>1</id>
    <unit type="submenu">
        <id>1</id>
    </unit>

使用 tokenizeXML() 似乎无法使其正常工作,因为它只会扫描 结束标记。处理这种情况的首选方法是什么?是否有其他一些拆分方法可以获得我需要的结果?我想使用 streaming() 所以用 xpath() 拆分对我来说不是一个选项。

您可以使用允许使用支持流模式的 SAX api 的 camel-stax。

您需要定义一个 POJO 和声明绑定的 JAXB 注释。