Я прочитал файл XML с помощью fs (файловая система) и преобразовал его буфер в простой длинный объект String, после чего мне нужно найти каждую указанную комбинацию тегов c и добавить небольшой текст, разделяющий строку, но иногда не удается сделать это более 1 раза.
xmldata = /*STRING OBJECT*/
var index = 0
while(index != -1) {
index = xmldata.indexOf("<description>", index + "<description>".length + "/n".length + "<![CDATA[".length)
var tempIndex = xmldata.indexOf("<div", index + "<description>".length)
if (index < tempIndex < index + "<description>".length + "/n".length && tempIndex != -1) xmldata = xmldata.splice(tempIndex - 1, 0, "<![CDATA[")
}
String.prototype.splice = function(idx, rem, str) {
return this.slice(0, idx) + str + this.slice(idx + Math.abs(rem));
};
простая запись
<description>
<div class='pdbDescContainer'>
может стать
<description>
<![CDATA[
<div class='pdbDescContainer'>
или подобным
<description>
<![CDATA[<![CDATA[<![CDATA[<![CDATA[<![CDATA[<![CDATA[<![CDATA[<![CDATA[<![CDATA[<![CDATA[<![CDATA[<![CDATA[<![CDATA[
<div class='pdbDescContainer'>
просто я не знаю, почему так происходит случайным образом