我的.XMl是
<?xml version="1.0" encoding="utf-8"?>
<data>
<shell id="TX-alg1-title">Lesson 2.1</shell>
<options id="parent">
<option id="TX-alg1">TX16E_ISE_0005</option>
<option id="TX-alg1-CID">9780353053</option>
</options>
</data>
我想在先前存在于xml中的shell标记之后添加另一个shell标记。
预期的O / p
<?xml version="1.0" encoding="utf-8"?>
<data>
<shell id="TX-alg1-title">Lesson 2.1</shell>
<shell id="CA-int1-title">Lesson 2.1</shell>
<options id="parent">
<option id="TX-alg1">TX16E_ISE_0005</option>
<option id="TX-alg1-CID">9780353053</option>
</options>
</data>
我正在app.js中阅读我的.XML文件
fs.readFile( './dlo_custom_en-US.xml', function(err, data) {
});
请告知如何在nodejs中已经存在shell标记之后附加shell标记。
答案 0 :(得分:2)
问题几乎相似Regex match text between tags 节点注意到除了服务器端的javascript。几乎所有编程语言都有 regexp 来查找模式。这是最简单的解决方案,但您应该更多地了解正则表达式
fs.readFile( './dlo_custom_en-US.xml', function(err, data) {
data.replace(/\<shell(.)*\<\/shell>/, "new replacement here")
});
*****更新***** 来自JavaScript: How can I insert a string at a specific index
var fs =require('fs')
String.prototype.splice = function(idx, rem, str) {
return this.slice(0, idx) + str + this.slice(idx + Math.abs(rem));
};
fs.readFile( './dlo_custom_en-US.xml',"utf8", function(err, data) {
if(err) return
var index = data.lastIndexOf('</shell>')+8
console.log(index)
var data= data.splice(index,0, 'newwwwwwwwwww')
console.log(data)
fs.writeFile('./new.xml',data,(err, done)=>{
if(err) return
console.log(err, done)
})
});