![](/img/trans.png)
[英]How to replace text between two XML tags using jQuery or JavaScript?
[英]replace value between tags in text using javascript
我正在尝试将以下文件中的值从“4xsddfdf”替换为“3AAAAAA”
<soapenv:Envelope xmlns:soapenv="http://autocorp.com/soap/envelope">
<soapenv:Header>
<ns2:section>something</ns2:section>
</soapenv:Header>
<soapenv:Body>
<aut:process>
<payload>
<ticket:ticektpro>
<ticketName>4xsddfdf</ticketName>
</ticket:ticektpro>
</payload>
</soapenv:Body>
</soapenv:Envelope>
我的代码是
const fs = require('fs');
const replacePath="3AAAAAA"
var REGEX = /<ticketName>(.+)</ticketName>/;
console.log(REGEX)
var fileContent = fs.readFileSync('query_request.txt', 'utf8');
matchresult = fileContent.match('<ticketName>4xsddfdf</ticketName>');
console.log('------------------------------match',matchresult)
fileContent = fileContent.replace(REGEX, function replacer(matchresult,replacePath) {
// load and return the replacement file
console.log('----------------------------------',fileContent)
return fs.readFileSync(replacePath, 'utf8');
});
console.log(fileContent)
fs.writeFileSync('query_request.txt', fileContent);
但价值替换不起作用。 任何人都可以帮助解决这个问题。
语法荧光笔实际上是在突出问题:您没有在结束标记中对栏进行转义,因此正则表达式在那里结束。 尝试:
var REGEX = /<ticketName>(.+)<\/ticketName>/;
演示: https://regex101.com/r/zlXfQK/1
对于评论中的附加问题,有一个代码可以用新内容替换文件:
const fs = require('fs');
const replacePath="3AAAAAA";
const filenameIn = 'query_request.txt';
const filenameOut = 'query_request_out.txt';
var REGEX = /<ticketName>(.+)<\/ticketName>/;
var fileContent = fs.readFileSync(filenameIn, 'utf8');
fileContent = fileContent.replace(
REGEX,
'<ticketName>' + replacePath + '</ticketName>'
);
fs.writeFileSync(filenameOut, fileContent, 'utf8');
只需将filenameOut
更改为正确的值。
之后,您有一个内容已更改的文件,您可以发送或执行任何您想做的事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.