对于Mule中的每个,使用XPATH检索随机项

对于Mule中的每个,使用XPATH检索随机项,mule,Mule,我正在处理一个包含4项的XML。在根目录下,项目可以以任何顺序出现,每个项目也可以包含相同的4个项目,同样可以以任何顺序出现 例如: <?xml version="1.0" encoding="UTF-8"?> <p:ptree> <p1> <p2> <p3> ... </p3> <p3> ...

我正在处理一个包含4项的XML。在根目录下,项目可以以任何顺序出现,每个项目也可以包含相同的4个项目,同样可以以任何顺序出现

例如:

<?xml version="1.0" encoding="UTF-8"?>
<p:ptree>
<p1>
    <p2>
        <p3>
            ...
        </p3>
        <p3>
            ...
        </p3>
    </p2>
    <p2>
        <p3>
            ...
        </p3>
        <p2>
            ...
        </p2>
    </p2>
</p1>
</p:ptree>

...
...
...
...

我的问题是:是否可以使用XPath将根目录中的子项分隔为Mule中每个块的子项?提前谢谢

是的
foreach collection=“#[xpath://*]”
将迭代根元素的所有子元素。

感谢您的回复。我尝试了这个,但得到了以下错误:org.mule.routing.expressionspliter:表达式的计算结果不是可以拆分的类型:org.apache.xerces.dom.elementnsimpl听起来可能只找到了一个子元素。如果您自己调试失败,请使用完整的xml内容和流配置更新您的问题。感谢您的帮助。更新了一个更好、更真实的示例。您真的是指根(即
p:tree
)还是
p1
?您是否在命名空间管理器中声明了
p
命名空间?在现实生活中,它将是所有节点。例如,以ptree的一个结果为例,然后是p1的一个结果,然后是下面的两个结果,依此类推。在这种情况下,安东下面的建议看起来不错,我想我应该使用MEL而不是旧的表达式语言,或者更类似的语言:
#[xpath('/p:ptree/*/*/node()')]