如何在Mule Anypoint中拆分XML?

如何在Mule Anypoint中拆分XML?,mule,Mule,更新: 我找到了问题所在,但我可以解决分歧问题。由于XML拆分器中的命名空间未计算拆分表达式 WARN 2014-09-10 15:30:27,181 [[user_provisions_-_xml_post].user_provisions_-_xml_postFlow1.stage1.02] org.mule.routing.ExpressionSplitter: Splitter returned no results. If this is not expected, please c

更新

我找到了问题所在,但我可以解决分歧问题。由于XML拆分器中的
命名空间
未计算拆分表达式

WARN  2014-09-10 15:30:27,181 [[user_provisions_-_xml_post].user_provisions_-_xml_postFlow1.stage1.02] org.mule.routing.ExpressionSplitter: Splitter returned no results. If this is not expected, please check your split expression

34567
试验
管理
萨哈克
千牛
12345
试验
管理
阿伦
古玛
如果我删除
xmlns=”http://www.cpscreen.com/schemas“
它正在拆分为多个


如果xml中有名称空间,如何添加spit表达式?

您应该在文件入站端点之后直接使用拆分器。。。 此表达式用于拆分CSV文件:-

<?xml version="1.0" encoding="UTF-8"?>
<UpdateUserRequests xmlns="http://www.cpscreen.com/schemas">
    <UpdateUserRequest userId="Test" account="Test" password="Test">
        <User>
            <Account id="4">34567</Account>
            <UserId>Test</UserId>
            <Profile>Admin</Profile>
            <PersonName>
                <GivenName>Sahak</GivenName>
                <FamilyName>Kn</FamilyName>
            </PersonName>
        </User>
    </UpdateUserRequest>
    <UpdateUserRequest userId="Test" account="Test" password="Test">
        <User>
            <Account id="5">12345</Account>
            <UserId>Test</UserId>
            <Profile>Admin</Profile>
            <PersonName>
                <GivenName>Arun</GivenName>
                <FamilyName>Kumar</FamilyName>
            </PersonName>
        </User>
    </UpdateUserRequest>
</UpdateUserRequests>

如果您的CSV文件有一个列标题,如名称、年龄等。。您可以使用以下选项:-

<splitter expression="#[StringUtils.split(message.payload, '\n\r')]" doc:name="Splitter_For_MultipleRow"/>

使用以下表达式将xml与命名空间拆分

<splitter expression="#[rows=StringUtils.split(message.payload, '\n\r');ArrayUtils.subarray(rows,1,rows.size())]" doc:name="Splitter_For_MultipleRow"></splitter>

考虑到Mule MXL名称空间管理器中添加了“ns0”名称空间,上述表达式起作用


希望这有帮助。

我不能这样做,因为我正在将CSV数据发送到其他ESB(因为Mule data mapper是付费的),它会返回xml。我需要拆分xml并读取我所面临的问题。。更新了项目。xml中存在名称空间,这就是它没有拆分的原因
<splitter expression="#[rows=StringUtils.split(message.payload, '\n\r');ArrayUtils.subarray(rows,1,rows.size())]" doc:name="Splitter_For_MultipleRow"></splitter>
<splitter expression="#[xpath('//ns0:UpdateUserRequest')]" doc:name="Splitter"/>