Ich habe eine XML-Datei, wo ich Attributwerte mit den Werten aus einem Array mit GulpJS ersetzen muss.So ersetzen Sie Zeichenfolgen mit Werten in einem Array mit Gulp ersetzen
JavaScript-Code:
var gulp = require('gulp');
var replace = require('gulp-replace');
gulp.task('default', function() {
//array is dynamic
var users = ["existing_value1", "existing_value2", "existing_value3"];
var num = users.length();
for (i=0;i<num;i++) {
gulp.src(['idmap/*.xml'])
.pipe(replace(users[i], 'SYSTEM'))
.pipe(gulp.dest('build/'));
}
});
XML-Beispiel:
<?xml version="1.0"?><IDMAP><RECORD>
<TOKEN data = "414"/><NAME data="existing_value1"/></RECORD>
<RECORD><TOKEN data = "420"/><NAME data="existing_value2"/></RECORD>
<RECORD><TOKEN data = "361"/><NAME data="existing_value3"/></RECORD>
</IDMAP>
Mit diesem Code, ich bin in der Lage den String in XML mit dem letzten Element in Array zu ersetzen. Wie man alle Einzelteile durch die in der Reihe ersetzt und dann den Aufbau tut?
Vielen Dank im Voraus!
@king, bin ich nicht sicher, wie 'Array.prototype.replace' sich mit' Streams' verhält. Probieren Sie es aus und lassen Sie es mich wissen. –
danke noch einmal! Nachfolgend arbeitete, 'code' Funktion replaceArray (searchArray, Ersatz) { return through.obj (function (Datei, Kodierung, Rückruf) { if (file.isBuffer()) { var result = searchArray. reduce (Funktion (Inhalt, SuchArray)) { Rückgabe contents.split (searchArray) .join (Ersetzung); }, Zeichenfolge (file.contents)); file.contents = neuer Puffer (Ergebnis); Rückruf (null , Datei); } Rückruf (Null, Datei); }); } 'code' –
@king, wenn es für Sie funktioniert, Würden Sie die Antwort upvote und akzeptieren? :) –