我想通过排除该内容中的几个标签来检索xml的两个标签之间的所有内容。这是什么常规表现?例如,在下面的xml中,我想通过排除<ASObject mappedClass="com.taliantsoftware.claims.indemnity.PayeeAllocationDTO" encoding="0">
标记来提取</ASObject>
和<updated tagClass="boolean">false</updated> and <voided tagClass="boolean">false</voided>
之间的所有内容。
<ASObject mappedClass="com.taliantsoftware.claims.indemnity.PayeeAllocationDTO" encoding="0">
<payeecustomerid tagClass="double">2004570.0</payeecustomerid>
<amount tagClass="double">2131.2</amount>
<new tagClass="boolean">true</new>
<percent tagClass="double">100.0</percent>
<updated tagClass="boolean">false</updated>
<voided tagClass="boolean">false</voided>
<remainderindicator tagClass="boolean">true</remainderindicator>
<detailamountstatustypecode tagClass="String">pnd</detailamountstatustypecode>
<primary tagClass="boolean">true</primary>
<mailtoindicator tagClass="boolean">true</mailtoindicator>
<checkgroupnumber tagClass="double">1.0</checkgroupnumber>
<detailamountstatustypename tagClass="String">Pending</detailamountstatustypename>
</ASObject>
答案 0 :(得分:0)
如果您只想删除更新的和无效的标签,这个正则表达式应该可以工作:
var clean_xml = xml.replace(/<(updated|voided).*</\1>/,'')
注意:
修改强>
如果必须首先捕获ASObject标记,则正则表达式不是很漂亮。使用递归模式可能更好。
/(<ASObject.*)<(updated|voided).*<\/\2>(.*)<(updated|voided).*<\/\4>(.*<\/ASObject>)/
然后连接结果数组的索引1,3,5。