javascript - 获取数组中字符串的一部分

标签 javascript string node.js

我目前正在使用nodejs,并且我有一个返回正文(字符串)的函数,如下所示:

 <resourceDescriptors>
<resourceDescriptor name="AllAccounts" wsType="reportUnit" uriString="/reports/samples/AllAccounts" isNew="false">
    <label><![CDATA[Accounts Report]]></label>
    <description><![CDATA[All Accounts Report]]></description>
    <creationDate>1328803684197</creationDate>
    <resourceProperty name="PROP_RESOURCE_TYPE">
        <value><![CDATA[com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.ReportUnit]]></value>
    </resourceProperty>
    <resourceProperty name="PROP_PARENT_FOLDER">
        <value><![CDATA[/reports/samples]]></value>
    </resourceProperty>
    <resourceProperty name="PROP_VERSION">
        <value><![CDATA[0]]></value>
    </resourceProperty>
    <resourceProperty name="PROP_RU_ALWAYS_PROPMT_CONTROLS">
        <value><![CDATA[false]]></value>
    </resourceProperty>
    <resourceProperty name="PROP_RU_CONTROLS_LAYOUT">
        <value><![CDATA[1]]></value>
    </resourceProperty>
</resourceDescriptor>
<resourceDescriptor name="Cascading_multi_select_report" wsType="reportUnit" uriString="/reports/samples/Cascading_multi_select_report" isNew="false">
    <label><![CDATA[Cascading multi select example report]]></label>
    <description><![CDATA[Example report with Cascading multi select input controls]]></description>
    <creationDate>1328803684289</creationDate>
    <resourceProperty name="PROP_RESOURCE_TYPE">
        <value><![CDATA[com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.ReportUnit]]></value>
    </resourceProperty>
    <resourceProperty name="PROP_PARENT_FOLDER">
        <value><![CDATA[/reports/samples]]></value>
    </resourceProperty>
    <resourceProperty name="PROP_VERSION">
        <value><![CDATA[0]]></value>
    </resourceProperty>
    <resourceProperty name="PROP_RU_ALWAYS_PROPMT_CONTROLS">
        <value><![CDATA[true]]></value>
    </resourceProperty>
    <resourceProperty name="PROP_RU_CONTROLS_LAYOUT">
        <value><![CDATA[1]]></value>
    </resourceProperty>
</resourceDescriptor>
                ....
</resourceDescriptors>

所以我想从这个字符串中获取所有FIRST名称部分(不带引号)并将其放入数组或列表(在javascript中),就像这里我想要的:

list[0]=AllAccounts
list[1]=Cascading_multi_select_report

我尝试了多种方法,但都不起作用,你能帮我吗? 谢谢!

最佳答案

使用xml2js :

var xml2js = require('xml2js'),
    parser = new xml2js.Parser();

parser.parseString(body, function(err, result) {
  var names = result.resourceDescriptor.map(function(resourceDescriptor) {
    return resourceDescriptor['@'].name;
  });
  console.log(names);
  // => [ 'AllAccounts', 'Cascading_multi_select_report' ]
});

注意:我对 xml2js 不太熟悉,可能有更好的库,特别是当您需要解析大型文档时。

关于javascript - 获取数组中字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9685975/

相关文章:

C程序检查字符串是否为回文

string - 使用tr///运算符计算字符串中的字母

javascript - 错误 : JSON Parse error: Property name must be a string literal when using angular translate

javascript - php 自动替换链接 css

regex - 从字符串中删除除空格以外的特殊字符

javascript - Internet Explorer 8 标准模式下的表格性能不佳

mysql - Nodejs mysql如何处理超时和握手不活动超时

node.js - 使用 Node.js 显示错误

javascript - Tab 键无法使用 HTML 和 javascript 工作

php - JSON.解析 : unexpected character