删除部分字符串javascript无法正常工作

时间:2012-03-07 10:40:07

标签: javascript node.js

我正在尝试删除此字符串的第二部分(第二个块)

<resourceDescriptor name="report_mongodb_new_basic" wsType="reportUnit"  uriString="/reports/samples/report_mongodb_new_basic" isNew="false">
<label><![CDATA[report mongodb new basic]]></label>
<description><![CDATA[test 3]]></description>
<creationDate>1330693884348</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>
<resourceProperty name="PROP_RU_REPORT_RENDERING_VIEW">
    <value><![CDATA[]]></value>
</resourceProperty>
<resourceDescriptor wsType="datasource" isNew="false">
    <resourceProperty name="PROP_REFERENCE_URI">
        <value><![CDATA[/datasources/MongoDB]]></value>
    </resourceProperty>
    <resourceProperty name="PROP_IS_REFERENCE">
        <value><![CDATA[true]]></value>
    </resourceProperty>

<resourceDescriptor name="report_mongodb_new_basic_" wsType="jrxml" uriString="/reports/samples/report_mongodb_new_basic_files/report_mongodb_new_basic_" isNew="false">
    <label><![CDATA[report mongodb new basic]]></label>
    <creationDate>1330693884348</creationDate>
    <resourceProperty name="PROP_RESOURCE_TYPE">
        <value><![CDATA[com.jaspersoft.jasperserver.api.metadata.common.domain.FileResource]]></value>
    </resourceProperty>
    <resourceProperty name="PROP_PARENT_FOLDER">
        <value><![CDATA[/reports/samples/report_mongodb_new_basic_files]]></value>
    </resourceProperty>
    <resourceProperty name="PROP_VERSION">
        <value><![CDATA[0]]></value>
    </resourceProperty>
    <resourceProperty name="PROP_IS_REFERENCE">
        <value><![CDATA[false]]></value>
    </resourceProperty>
    <resourceProperty name="PROP_HAS_DATA">
        <value><![CDATA[true]]></value>
    </resourceProperty>
    <resourceProperty name="PROP_ATTACHMENT_ID">
        <value><![CDATA[attachment]]></value>
    </resourceProperty>
    <resourceProperty name="PROP_RU_IS_MAIN_REPORT">
        <value><![CDATA[true]]></value>
    </resourceProperty>
</resourceDescriptor>

我只想要第一个块 (From : <resourceDescriptor to </resourceDescriptor> 我目前正在这样做,但它不起作用:

var sbody = a.body; //sbody is a String
sbody.split("</resourceDescriptor>").pop();
console.log(sbody);

结果什么都没改变(COnsole.log是nodejs它是打印) OR

sbody.substring(sbody.indexOf("<resourceDescriptor>") + 1, sbody.indexOf("</resourceDescriptor>"));
console.log(sbody);

结果也没有改变,为什么?

由于

3 个答案:

答案 0 :(得分:1)

pop返回弹出的值,它不会改变对象/数组  它被召唤;

var result = sbody.split("</resourceDescriptor>").pop();
console.log(result);

答案 1 :(得分:1)

这将为您提供除end resourceDescriptor

之外的字符串缓冲区
sbody.split("</resourceDescriptor>")[0];
console.log(sbody);

答案 2 :(得分:0)

替代解决方案是: 将上面的XML添加到DOM中的隐藏div中,然后可以使用getElementByTagName或jQuery方法访问它。