function contactsToJSON(reply, providerNs) {
  var items = xml.parseXmlString(reply.toString()).find('//query:item', {query: providerNs});
  var jsonItems = [];
  items.forEach(function(e){
    jsonItems.push(contactToJSON(e, ns));
  });
  return jsonItems;
}
示例#2
0
 mml_builder.toXML(function(err, data){
   var xmlDoc = libxmljs.parseXmlString(data);
   var sql = xmlDoc.get("//Parameter[@name='table']");
   assert.eql(sql.text(), "my_polygon_tablez");
   
   var style = xmlDoc.get("//PolygonSymbolizer");
   assert.eql(style.attr('fill').value(), "#ff6600");    
 });      
示例#3
0
function xmlDoc(filename) {
  var xml = fs.readFileSync(filename);
  try {
    return libxmljs.parseXmlString(xml.toString());
  } catch(err) {
    console.log(err + ": " + filename + " isn't xml");
  }
}
示例#4
0
exports.postsToJSON = function(reply) {
  var items = xml.parseXmlString(reply.toString()).find('//query:item', {query: contentNs});
  var jsonItems = [];
  items.forEach(function(e){
    jsonItems.push(postToJson(e));
  });
  return jsonItems;
}
示例#5
0
exports.channelsToJSON = function(reply, ns) {
  var items = xml.parseXmlString(reply.toString()).find('//query:item', {query: ns});
  var jsonItems = [];
  items.forEach(function(e){
    jsonItems.push(channelToJson(e, ns));
  });
  return jsonItems;
}
exports.modifyXML = function (xml, modifications) {
    var xmlDoc = libxmljs.parseXmlString(xml, {
        noblanks: true
    });
    doModifications(xmlDoc, modifications);
    var result = xmlDoc.toString();
    return result;
};
test('validates wrapper vast XML', function(t) {
  var response = wrapper.xml({ pretty : true, indent: '  ', newline: '\n' });
  // TB: If desired, uncomment here and write file to disk for review:
  // fs.writeFileSync('./test/files/wrapper.xml', response);
  xml = libxmljs.parseXmlString(response);
  var result = xml.validate(xsd);
  t.ok(result, 'It validates against the VAST .xsd');
  t.end();
});
示例#8
0
function push_apps(req, callback) {
    var file = utils.data_dir(req.body.base_uri)+'/appdata.xml';
    var content = null;
    try {
        content = fs.readFileSync(file).toString();
    } catch (err) {
        return callback(false, err);
    }
    var doc = libxml.parseXmlString(content);
    var apps = doc.root().childNodes();
    var data = [];

    for (var i = 0; i < apps.length ; i++) {
        var elems = apps[i].childNodes();
        var app = {};
        var download = {'pkgrepo': req.body.base_uri};
        for (var j = 0; j < elems.length; j++) {
            var attr = elems[j].attr('type');
            if (attr) {
                if (attr.value() == 'desktop')
                    continue;
            }
            if (elems[j].name() == 'appcategories') {
                var cates = elems[j].childNodes();
                app.appcategories = [];
                for (var k = 0; k < cates.length; k++) {
                    if (cates[k].text())
                        app.appcategories.push(cates[k].text());
                }
            } else if (elems[j].name() == 'mimetypes') {
            } else if (elems[j].name() == 'pkgname') {
                download.pkgname = elems[j].text();
            } else {
                app[elems[j].name()] = elems[j].text();
            }   
        }
        app.download = [];
        app.download.push(download);
        data.push(app);
    }

    var db = new Db('apps', new Server("127.0.0.1", 27017));
    db.open(function(err, db) {
        if (err)
            return callback(false, err);
        db.collection("content", function(err, collection) {
            collection.insert(data, function(err, result) {
                if (err) {
                    return callback(false, err);
                } else {
                    db.close();
                    return callback(true);
                }
            });
        });
    });
};
示例#9
0
 }).toXML(function(err, data){
     if ( err ) { return done(err); }
     var xmlDoc = libxmljs.parseXmlString(data);
     var xpath = "//MaxScaleDenominator";
     var x = xmlDoc.get(xpath);
     assert.ok(x, "Xpath '" + xpath + "' does not match " + xmlDoc);
     assert.equal(x.text(), "50000000");
     done();
 });
示例#10
0
exports.buildBasic = function(preDom){
  if(undefined !=preDom)
    dom=preDom;
  else
    dom = libxmljs.parseXmlString(basic);
  
  header=dom.find('//soapenv:Header',namespace)[0];
  body=dom.find('//soapenv:Body',namespace)[0];
}
示例#11
0
function parseXML (doc, callback, nano, err, res, xml) {
    try{
        var $ = libxml.parseXmlString(xml);
    }catch(error){
        console.log('Error while parsing xml file:');
        console.log(error);
        return error;
    }
    var deps = [];
    $.find('//itdDepartureList/itdDeparture').forEach(function (child) {
        var departure = {
            platform: child.attr('platform').value(),
            stopID: child.attr('stopID').value(),
            countdown: Number(child.attr('countdown').value()),
            isRealTime: true
        };

        var servLine = child.find('itdServingLine')[0];

        var itdNoTrain = servLine.find('itdNoTrain');
        if(itdNoTrain.length > 0 && itdNoTrain[0].attr('delay') !== null)
            departure.strike = itdNoTrain[0].attr('delay').value() === '-9999';
        departure.direction = servLine.attr('direction').value();
        departure.realtime = servLine.attr('realtime').value();
        departure.line = servLine.attr('number').value();
        var dateTime = child.find('itdRTDateTime');
        if (dateTime.length === 0) {
            departure.isRealTime = false;
            dateTime = child.find('itdDateTime')[0];
        }
        else
            dateTime = dateTime[0];
        var date = dateTime.find('itdDate')[0];
        var time = dateTime.find('itdTime')[0];
        departure.dateTime = new Date(Number(date.attr('year').value()),
                                      Number(date.attr('month').value()),
                                      Number(date.attr('day').value()),
                                      Number(time.attr('hour').value()),
                                      Number(time.attr('minute').value()),
                                      0, 0);
        departure.dateTime = Number(departure.dateTime);
        deps.push(departure);
    });
    doc.departures = deps.sort(function (a, b) {
        return (a.countdown - b.countdown);
    });
    doc.lastUpdate = Number(new Date());
    callback(null, doc);
    nano.bulk({docs: [doc]}, function (err) {
        if (err) {
            console.log('Error occured:');
            console.log(err);
        }
        else
            console.log('Wrote record to database');
    });
}
示例#12
0
  fs.readFile(fileName, 'utf8', function (err,rawData) {
    if (err) {
      return console.log(err);
    }
    var xmlDoc = libxmljs.parseXmlString(rawData);
    var root = xmlDoc.root();
    var children = root.childNodes();

    for (var i = 0 ; i < children.length; i++) {
      var child = children[i];
      if (child.name() != 'text'){

        var fileName = getAttributeValue(child, 'filename');
        var titleKey = getAttributeValue(child, 'titleKey');

        var title         = escapeString(getChildDesc(child, 'titre'));
        var movieLink     = escapeString(getChildDesc(child, 'movieLink'));
        var targetPublic  = escapeString(getChildDesc(child, 'publicType'));
        var filmLength    = escapeString(getChildDesc(child, 'duree'));
        var type          = escapeString(getChildDesc(child, 'genre'));
        var realisator    = escapeString(getChildDesc(child, 'realisateur'));
        var actors        = escapeString(getChildDesc(child, 'acteurs'));
        var mediaScore    = escapeString(getChildDesc(child, 'notePresse'));
        var specScore     = escapeString(getChildDesc(child, 'noteSpec'));
        var synopsis      = escapeString(getChildDesc(child, 'synopsis'));
        var affiche       = escapeString(getChildDesc(child, 'affiche'));
        var originalTitle = escapeString(getChildDesc(child, 'titreOriginal'));
        var releaseDate   = escapeString(getChildDesc(child, 'dateDeSortie'));


        originalTitle = originalTitle != "-" ? originalTitle : "";
        releaseDate   = convertDateFormat(releaseDate);


        var request = 'INSERT INTO film(`nom_fichier`, `titre`, `allocine`, `titre_original`, `date_sortie`, `public`, `durée`, `genre`, `realisateur`, `acteur`, `note_presse`, `note_spectateur`, `synopsis`, `image`) VALUES (';
        request += '"' + fileName + '", ';
        request += '"' + title + '", ';
        request += '"' + movieLink + '", ';
        request += '"' + originalTitle + '", ';
        request += '"' + releaseDate + '", ';
        request += '"' + targetPublic + '", ';
        request += '"' + filmLength + '", ';
        request += '"' + type + '", ';
        request += '"' + realisator + '", ';
        request += '"' + actors + '", ';
        request += '"' + mediaScore + '", ';
        request += '"' + specScore + '", ';
        request += '"' + synopsis + '", ';
        request += '"' + affiche + '"';
        request += ' );';

        console.log(request);
      }
    }

    if (exitOnClose) process.exit();
  });
示例#13
0
PostSchema.virtual('contentHTML').get(function() {
	var result = '';
	if (this.content) {
		var xmlDoc = libxmljs.parseXmlString(this.content);

		var links = xmlDoc.find('//a');
		for ( var i in links) {
			var link = url.parse(links[i].attr('href').value());
			if (link.protocol == 'evernote:') {
				var guid = link.pathname.split('/')[4];
				links[i].attr({
					href : '/id/'+guid,
					target : '_self'
				});
			} else if (link.hostname != siteDomain) {
				links[i].attr({
					target : '_blank'
				});
			}
		}

		var medias = xmlDoc.find('//en-media');
		for ( var i in medias) {
			var hash = medias[i].attr('hash').remove().value();
			var mime = medias[i].attr('type').remove().value().split('/');
			var value = '/resources/' + this.guid + '/' + hash + '.' + mime[1];
			if (mime[0] == 'image') {
				medias[i].name('img').attr({
					src : value
				});
			} else {
				medias[i].name('a').attr({
					href : value
				});
			}
		}

		var crypts = xmlDoc.find('//en-crypt');
		for ( var i in crypts) {
			crypts[i].remove();
		}

		var todos = xmlDoc.find('//en-todo');
		for ( var i in todos) {
			todos[i].remove();
		}

		var lines = xmlDoc.get('//en-note').childNodes();
		for ( var i in lines) {
			if (lines[i].childNodes().length != 0) {
				result += lines[i].toString();
			}
		}
	}
	return result;
});
示例#14
0
        gpsbabel.on('close', function (code) {
            var err;

            if ( code ) {
                err = new Error("gpsbabel error: " + code);
            } else {
                doc = libxmljs.parseXmlString(xml);
            }
            callback(err, doc);
        });
                        fs.readFile(fixturesDir + 'tracks/convolution_result.gpx', function (err, content) {
                            var result = libxmljs.parseXmlString(content),
                                resEle = result.find('//gpx:ele', nsConfig);

                            assert.equal(resEle.length, elevations.length);
                            resEle.forEach(function (ele, i) {
                                assert.equal(resEle[i].text(), elevations[i].text());
                            });

                        });
示例#16
0
 mml_store.mml_builder({dbname: 'db', sql: "tab", style: DEFAULT_POINT_STYLE}).toXML(function(err, data){
       if ( err ) { done(err); return; }
       var xmlDoc = libxmljs.parseXmlString(data);
       var sql = xmlDoc.get("//Parameter[@name='table']");
       assert.equal(sql.text(), "tab");
       // NOTE: there's no need to explicitly delete style
       //       of mml_builder because it is an extension
       //       of mml_builder2 (extended by SQL)
       done();
 });
示例#17
0
    toString: function () {
        var xmlDoc = libxmljs.parseXmlString(this._data),
            props = xmlDoc.find('//d:prop', { d: 'DAV:' });

        return props.map(function (prop) {
            return prop.childNodes().map(function (node) {
                return node.name() + ':' + node.text();
            }).join(':');
        }).join(':');
    },
test('validates wrapper with companion vast XML', function(t) {
  var response = wrapperWithCompanion.xml({ pretty : true, indent: '  ', newline: '\n' });
  // TB: If desired, uncomment here and write file to disk for review:
  // fs.writeFileSync('./test/files/wrapper-with-companion.xml', response);
  t.ok(response.match('StaticResource'), 'it ensures that companion ads are present');
  xml = libxmljs.parseXmlString(response);
  var result = xml.validate(xsd);
  t.ok(result, 'It validates against the VAST .xsd');
  t.end();
});
示例#19
0
    setTimeout(function(){
      if (file.path.toLowerCase().indexOf(resultsFilenameString.toLowerCase()) > -1) {
        console.log('Found result ' + file.path);
        fs.readFile('./data/results/' + file.path, 'utf8', function (err,data) {
          if (err) {
            return console.log(err);
          }
          result = elections.parseXMLString(data, feedType);
          if (result) {
            votingArea = Object.keys(result)[0];
            results.push(result);
          }
          elections.pushJSONtoS3(results, resultsFilename);
          //setTimeout(elections.snapshotMap(), 5000);
        });

      } else if (file.path.indexOf('_SOP_') > -1) {
        SOPfilenameIndex = file.path.match(/.*?Local_SOP_(\d+)\.xml/i)[1];
        if (SOPfilenameIndex > latestSOP) {
          latestSOP = SOPfilenameIndex;
          latestSOPFilename = file.path;
          try {
            libxmljs.parseXmlString(fs.readFileSync('./data/results/' + latestSOPFilename), { noblanks: true }); // Ensure XML isn't broken.
            elections.pushXMLtoS3(latestSOPFilename, SOPFilename);
          } catch(err) {
            console.log('Invalid SOP XML. Disregarding for now...');
          }
        }
      } else if (file.path.indexOf('running_totals') > -1) {
        refFilenameIndex = file.path.match(/.*?running_totals_(\d+)\.xml/i)[1];
        if (refFilenameIndex > latestRefRunTotal) {
          latestRefRunTotal = refFilenameIndex;
          latestRunningTotalsFilename = file.path;
          try {
            libxmljs.parseXmlString(fs.readFileSync('./data/results/' + latestRunningTotalsFilename), { noblanks: true }); // Ensure XML isn't broken.
            elections.pushXMLtoS3(latestRunningTotalsFilename, referendumFilename);
          } catch(err) {
            console.log('Invalid Running Total XML. Disregarding for now...');
          }
        }
      }
    }, 5000);
示例#20
0
 }).toXML(function(err, data){
     if ( err ) { return done(err); }
     var xmlDoc = libxmljs.parseXmlString(data);
     var x = xmlDoc.get("//Parameter[@name='interactivity_layer']");
     assert.ok(x);
     assert.equal(x.text(), "layer0");
     x = xmlDoc.get("//Parameter[@name='interactivity_fields']");
     assert.ok(x);
     assert.equal(x.text(), "a,b");
     done();
 });
示例#21
0
 mml_store.mml_builder({dbname: 'd', sql: SAMPLE_SQL, style: style}).toXML(function(err, output) {
     try {
       assert.ok(_.isNull(err), _.isNull(err) ? '' : err.message);
       assert.ok(output);
       var xmlDoc = libxmljs.parseXmlString(output);
       //assert.equal(output, '');
       var srs = xmlDoc.get("//PolygonSymbolizer/@fill");
       assert.equal(srs.value(), '#ffffff');
       done();
     } catch (err) { done(err); }
 });
示例#22
0
 mml_builder2.toXML(function(err, data){
   if ( err ) { done(err); return; }
   // TODO: check redis status now
   var xmlDoc = libxmljs.parseXmlString(data);
   var sql = xmlDoc.get("//Parameter[@name='table']");
   assert.equal(sql.text(), "tab");
   // NOTE: there's no need to explicitly delete style
   //       of mml_builder because it is an extension
   //       of mml_builder2 (extended by SQL)
   mml_builder2.delStyle(done);
 });
示例#23
0
 mml_builder.toXML(function(err, data){
   if ( err ) { mml_builder.delStyle(function() { done(err); }); return; }
   var xmlDoc = libxmljs.parseXmlString(data);
   var x = xmlDoc.get("//Parameter[@name='interactivity_layer']");
   assert.ok(x);
   assert.equal(x.text(), "t");
   x = xmlDoc.get("//Parameter[@name='interactivity_fields']");
   assert.ok(x);
   assert.equal(x.text(), "a,b");
   mml_builder.delStyle(done);
 });
示例#24
0
	function jathTransform() {
		sys.puts( 'running jath transform' );
		sys.puts( 'sourcedata ' + sourcedata );
		sys.puts( 'templatedata ' + templatedata );
		var xmldoc = xml.parseXmlString( sourcedata );
		var template = eval( templatedata );
		var result = jath.parse( template, xmldoc );
		sys.puts( sys.inspect(result, false, null ) );
		res.write( sys.inspect(result, false, null ) );
		res.end();
	}
示例#25
0
function getLatestItemId(reply) {
  var replydoc = xml.parseXmlString(reply.toString());
  var item = replydoc.get('/iq/p:pubsub/p:items/p:item[1]', {
    p: pubsub.ns
  });
  if (item) {
    return item.attr('id').value();
  } else {
    return null;
  }
}
                gpxcleaner()(files, false, function (err) {
                    var doc = libxmljs.parseXmlString(files[path].contents),
                        elevations = doc.find('//gpx:ele', nsConfig);

                    elevations.forEach(function (ele) {
                        assert.equal(350, parseInt(ele.text()));
                    });
                    assert.equal(2, elevations.length);
                     
                    done();
                });
示例#27
0
文件: index.js 项目: Applifier/xmldom
function format(s){
	if(libxml){
		var result = libxml.parseXmlString(s).toString().replace(/^\s+|\s+$/g,'');
		//console.log(result.charCodeAt().toString(16),result)
	}else{
		var domjs = new DomJS.DomJS();
		domjs.parse(s, function(err, dom) {
	  	  result = dom.toXml();
		});
	}
	return result;
}
示例#28
0
function parseRequestBody(req, res) {
  try {
    if (req.is('json') || req.body.toString().match(/^\w*\{/)) {
      return atom.fromJSON(JSON.parse(req.body));
    } else {
      return xml.parseXmlString(req.body);
    }
  } catch (e) {
    res.send(400);
    return null;
  }
}
示例#29
0
function getLatestEntry(reply) {
  var replydoc = xml.parseXmlString(reply.toString());
  var entries = replydoc.find('/iq/p:pubsub/p:items/p:item/a:entry', {
    p: pubsub.ns,
    a: atom.ns
  });
  if (entries.length > 0) {
    return entries[0];
  } else {
    return null;
  }
}
示例#30
0
var AdxReader = module.exports = function(data) {
    try {
        this.doc = libxml.parseXmlString(data);
    }
    catch (err) {
        console.log(err);
        this.records = [];
        return;
    }

    this.record = this.doc.get("/ADX/RECORDS/RECORD");
};