我需要通过nodejs重命名xml文件中的所有标签。我曾考虑过使用正则表达式,使用fs来读取文件,但是我有点迷失了。
<RESULTS>
<ROW>
<COLUMN NAME="DATA_CRIACAO"><![CDATA[24/08/18]]></COLUMN>
<COLUMN NAME="PLACA"><![CDATA[AAA123]]></COLUMN>
<COLUMN NAME="CHASSI"><![CDATA[YYYYY]]></COLUMN>
</ROW>
<ROW>
<COLUMN NAME="DATA_CRIACAO"><![CDATA[23/08/18]]></COLUMN>
<COLUMN NAME="PLACA"><![CDATA[BBB123]]></COLUMN>
<COLUMN NAME="CHASSI"><![CDATA[XXXXX]]></COLUMN>
</ROW>
</RESULTS>
例如,替换为:
<COLUMN NAME="DATA_CRIACAO"><![CDATA[24/08/18]]></COLUMN>
<COLUMN NAME="PLACA"><![CDATA[AAA123]]></COLUMN>
<COLUMN NAME="CHASSI"><![CDATA[YYYYY]]></COLUMN>
收件人:
<DATA_CRIACA><![CDATA[24/08/18]]></DATA_CRIACA>
<PLACA><![CDATA[AAA123]]></PLACA>
<CHASSI><![CDATA[YYYYY]]></CHASSI>
答案 0 :(得分:0)
好吧,如果您坚持使用正则表达式,则可以:
/<COLUMN NAME=\"([^\"]*)\"><([^>]*)></COLUMN>/gi
这将与'COLUMN'
行的内容相匹配,形成两个捕获组,用于替换。
第一组:引号内的内容。
第二组:CDATA内容。
这将替换为:
<$1><$2><$1>
这将是被“ <>
”取代的被俘虏的人群。
使用方法:
var testStr = "<RESULTS>\n"
+ "<ROW>\n"
+ "<COLUMN NAME="DATA_CRIACAO"><![CDATA[24/08/18]]></COLUMN>\n"
+ "<COLUMN NAME="PLACA"><![CDATA[AAA123]]></COLUMN>\n"
+ "<COLUMN NAME="CHASSI"><![CDATA[YYYYY]]></COLUMN>\n"
+ "</ROW>\n"
+ "<ROW>\n"
+ "<COLUMN NAME="DATA_CRIACAO"><![CDATA[23/08/18]]></COLUMN>\n"
+ "<COLUMN NAME="PLACA"><![CDATA[BBB123]]></COLUMN>\n"
+ "<COLUMN NAME="CHASSI"><![CDATA[XXXXX]]></COLUMN>\n"
+ "</ROW>\n"
+ "</RESULTS>\n";
var regex = /<COLUMN NAME=\"([^\"]*)\"><([^>]*)></COLUMN>/gi;
var result = testStr.replace(regex, '<$1><$2></$1>');
现在结果将等于您想要的输出。