首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将javascript变量转换为XML作为警报?

如何将javascript变量转换为XML作为警报?
EN

Stack Overflow用户
提问于 2018-04-11 09:34:51
回答 1查看 168关注 0票数 1

在这方面,我看到了各种相关的话题,但似乎没有一个答案有效和/或与我的确切问题无关。

我有一串由脚本格式化并保存为var的数据。变量的一个示例一旦格式化,输出如下所示:

美国广播公司,123,XXXXXX,22,马克,XXXX.DEF,345,XXX,XX,46,ORL,093782

每个新集合的开头都用'.‘表示。(除第一个值外)和集合中的每一段数据都用',‘分隔。同样的格式将继续使用大约15个条目,没有统一大小的条目,一些包含3-4个数据,还有一些包含10个或更多的数据。

我希望能够以警报()的形式输出这些数据,如下所示:

代码语言:javascript
复制
<Group>
    <Set name = "ABC">
        <Entry name = "1">123</Entry>
        <Entry name = "2">XXXXXX</Entry>
        <Entry name = "3">22</Entry>
        <Entry name = "4">MARK</Entry>
        <Entry name = "5">XXXX</Entry>
    </Set>
    <Set name = "DEF">
        <Entry name = "1">345</Entry>
        <Entry name = "2">XXX</Entry>
        <Entry name = "3">XX</Entry>
        <Entry name = "4">46</Entry>
        <Entry name = "5">ORL</Entry>
        <Entry name = "6">093782</Entry>
    </Set>
</Group>

问题:,我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-12 05:32:48

您的<Entry</Set>s的结束标记,我猜这只是一个错误吗?

由于您说要在警报中输出数据,所以只需要一个字符串,使用Array方法很容易构建该字符串:

代码语言:javascript
复制
const input = 'ABC,123,XXXXXX,22,MARK,XXXX.DEF,345,XXX,XX,46,ORL,093782';
const allSetsStr = input.split('.')
  .map(commaSeparatedStr => commaSeparatedStr.split(','))
  // if you want to filter out sets with an entryName of 345:
  .filter(([, ...entryNames]) => !entryNames.includes('345'))
  .map(([setName, ...entryNames]) => {
    const allEntrysString = entryNames
      .map((entryName, entryI) => `    <Entry name = "${entryI}">${entryName}</Entry>`)
      .join('\n');
    return `  <Set name=${setName}>
${allEntrysString}
  </Set>`;
  })
  .join('\n');
const outputStr = '<Group>\n' + allSetsStr + '\n</Group>';
console.log(outputStr);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49771551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档