Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml Mule XPath拆分器在第一个元素之后无法工作_Xml_Xpath_Mule - Fatal编程技术网

Xml Mule XPath拆分器在第一个元素之后无法工作

Xml Mule XPath拆分器在第一个元素之后无法工作,xml,xpath,mule,Xml,Xpath,Mule,我需要获取一条包含重复元素的传入XML消息,并将其拆分为单独的消息以进行后续处理。然后我需要重新组合结果并通过HTTP进行响应 我在第一步使用拆分器节点和XPath。但是,它只访问XML中的第一个元素,也不会将XML保留到下一个阶段。我试过了,但输出结果是一样的 我在Anypoint Studio中运行Mule 3.6.1 CE 注意:元素的处理顺序很重要,因此我不想只做散点采集 以下是我的示例XML:- <?xml version="1.0" encoding="UTF-8"?>

我需要获取一条包含重复元素的传入XML消息,并将其拆分为单独的消息以进行后续处理。然后我需要重新组合结果并通过HTTP进行响应

我在第一步使用拆分器节点和XPath。但是,它只访问XML中的第一个元素,也不会将XML保留到下一个阶段。我试过了,但输出结果是一样的

我在Anypoint Studio中运行Mule 3.6.1 CE

注意:元素的处理顺序很重要,因此我不想只做散点采集

以下是我的示例XML:-

<?xml version="1.0" encoding="UTF-8"?>
<itm:ItemList
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:itm="http://schemas.goochjs.org/item-v1"
        xsi:schemaLocation="http://schemas.goochjs.org/item-v1 item-v1.xsd">

    <itm:Item sequence="1" action="create">
        <itm:Thing type="something">
            <itm:Description>Something</itm:Description>
        </itm:Thing>

        <itm:Thing type="anything">
            <itm:Description>Something else</itm:Description>
        </itm:Thing>
    </itm:Item>

    <itm:Item sequence="2" action="update">
        <itm:Thing type="anything">
            <itm:Description>A wotsit</itm:Description>
        </itm:Thing>
    </itm:Item>

    <itm:Item sequence="2" action="create">
        <itm:Thing type="something">
            <itm:Description>A doohinky</itm:Description>
        </itm:Thing>
    </itm:Item>

    <itm:Item sequence="3" action="delete">
        <itm:Thing type="something">
            <itm:Description>A different doohinky</itm:Description>
        </itm:Thing>
    </itm:Item>
</itm:ItemList>

我错过了什么?我尝试在拆分之前添加各种不同的转换器(例如,建议将对象转换为XML),但没有效果。

尝试强制xpath表达式返回节点集:

<splitter expression="#[xpath3('/itm:ItemList/itm:Item', payload, 'NODESET')]"
        doc:name="Splitter" />

谢谢-我还必须在之后将DOM添加到XML节点中,但随后拆分工作正常。我很快得出结论,Mule的文档在某种程度上是非常方便的…;-)我想指出的是,在我还添加了一个“DOM到XML”节点之前,这也一直困扰着我。它真的应该在文档中的某个地方。
INFO  2015-03-19 10:48:17,440 [[mule-splitter-aggregator].splitter-endpoint.worker.01] org.mule.routing.ExpressionSplitter: The expression does not evaluate to a type that can be split: java.lang.String
INFO  2015-03-19 10:48:17,441 [[mule-splitter-aggregator].splitter-endpoint.worker.01] org.mule.api.processor.LoggerMessageProcessor: 

            Something



            Something else
<splitter expression="#[xpath3('/itm:ItemList/itm:Item', payload, 'NODESET')]"
        doc:name="Splitter" />