xmpp:如何使用stanza.io从xml读取嵌套数组数据

时间:2018-03-19 11:57:17

标签: xmpp stanza.io

我收到的是这样的一节:

<message xmlns='jabber:client' to='1' from='2' type='chat' id='50c1d830-283c-11e8-9dcf' xmlns='jabber:client'>
  <system xmlns='urn:xmpp:type' layout='layout1' default='true' subType='alert'>
    <title>First User</title>
    <email>support@abc.com</email>
    <action_label>Contact us</action_label>
    <deeplinks>
            <deeplink>
                <label>My deals</label>
                <link>/home</link>
            </deeplink>
            <deeplink>
                <label>New deals</label>
                <link>/page</link>
            </deeplink>
        </deeplinks>
  </system>
  <body>[This is a system message]</body>
</message>

由此,我可以将类型读作系统及其属性,例如标题,电子邮件,action_label,布局,子类型,默认属性

const system = stanzas.define({
        name: 'system',
        element: 'system',
        topLevel: true,
        namespace: 'urn:xmpp:type',
        fields: {
            layout: stanzas.utils.attribute('layout'),
            default: stanzas.utils.attribute('default'),
            subType: stanzas.utils.attribute('subType'),
            email: stanzas.utils.textSub('urn:xmpp:type', 'email'),
            actionLabel: stanzas.utils.textSub('urn:xmpp:type', 'action_label'),
            title: stanzas.utils.textSub('urn:xmpp:type', 'title')
        }
    });
stanzas.withMessage(Message => {
    stanzas.extend(Message, system);
});

但我无法阅读嵌套的deeplink节。 有关如何解析数据的任何建议吗?

0 个答案:

没有答案