0
私はGulpJSを使用して配列の値で属性値を置き換える必要があるXMLファイルを持っています。配列users1の既存の属性値は、users2配列の項目に置き換える必要があります。gulpjsを使用して配列値を別の配列の値に置き換える方法
のJavaScriptコード:
var gulp = require('gulp');
var replace = require('gulp-replace');
var rs = require('replacestream');
var through = require('through2');
gulp.task('default', function() {
//array is dynamic
var users1 = ["existing_value1", "existing_value2", "existing_value3"];
var users2 = ["new_value1", "new_value2", "new_value3"];
var num = users.length();
gulp.src(['idmap/*.xml'])
.pipe(replaceArray(users1, users2))
.pipe(gulp.dest('build/'));
});
function replaceArray(searchArray, replacement) {
return through.obj(function(file, encoding, callback) {
if (file.isBuffer()) {
var result = searchArray.reduce(function(contents, searchArray) {
return contents.split(searchArray).join(replacement);
}, String(file.contents));
file.contents = new Buffer(result);
return callback(null, file);
}
callback(null, file);
});
}
サンプルXML:上記のコードでは
<?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>
、私はカンマ区切り値によって置き換えられているXML内のすべての値(ユーザー1列)を取得していますusers2配列。どのように配列内の対応するものとすべての項目を置き換えるには?
ありがとうございます!
thanks @sven! (i = 0; i