我目前正在使用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/