Tag: xml parsing

如何parsingXML在JavaScript Nashorn引擎?

我试图在服务器端运行JavaScript(与Nashorn),并在JavaScript代码,parsing一个XML文件。 我们不能默认这样做:我们需要加载一些特定的.js库(DOMParser等)。 我尝试过使用Node.js模块'XMLDOM',它可以不使用Node.js,如下所示: https : //github.com/jindw/xmldom/wiki/How-to-use-xmldom-in-non -node.js的JavaScript的平台样的Rhino或-的SpiderMonkey 但是这个页面带来了一个新的问题:我们需要将这些.js文件的负载封装在对象中,他们给了我们一个例子: var dpObj = {}; loadObject ( dpObj, "dom-parser.js" ); (如果我们只是以一种经典的方式加载.js文件,它不起作用) 我不知道如何编写这样的'loadObject'函数,但它可能是解决scheme。 也许我们也可以使用Nashorn内的'require'库? 也许有一个很好的替代XMLDOM模块? 有什么build议么 ? PS 1:我尝试了'env.rhino.1.2.js'( http://www.envjs.com )作为XMLDOM模块交替,但是这个脚本甚至不能被Nashorn加载… PS 2:我也尝试parsingJava中的XML,并使用JavaScript内的结果,但我不知道如何转换对象(我有一个org.w3c.dom.Document对象插入,但这是不一样的作为JavaScript的DOM文件…我有例如gesDescendant方法丢失或类似的东西)。

问题parsingXML和收集XMLstream的儿童

我正在尝试使用xml-stream在nodejs脚本中parsing非常大的XML文件。 xml-stream可以在这里find – https://github.com/assistunion/xml-stream <?xml version="1.0"?> <Products xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="en-us" version="0.96" versionTimestamp="2012-02-07T03:00:00Z" fooKey="6402420af51e08"> <Product> <id>296834</id> <name>Thing</name> <Photos> <Photo> <MediaURL>http://url.com/to/image/file</MediaURL> </Photo> <Photo> <MediaURL>http://url.com/to/image/secondfile</MediaURL> </Photo> <Photo> <MediaURL>http://url.com/to/image/thirdfile</MediaURL> </Photo> </Photos> </Product> </Products> 和我的nodejs代码看起来像这样… var fs = require('fs') , path = require('path') , XmlStream = require('xml-stream') ; // Create a file stream and pass it to XmlStream var stream = […]

获取parse.com CloudCode的html源代码w / XMLHttpRequest.js

对于云代码(parse.com),我试图从另一个网站上刮取网页数据,但我一直无法获得网站的源代码作为一个string。 我尝试使用xmlhttprequest模块 var url = "www.targetWebsite.com"; var XMLHttpRequest = require("cloud/XMLHttpRequest.js").XMLHttpRequest; var xmlHttp = new XMLHttpRequest(); xmlHttp.open( "GET", url, false ); xmlHttp.send( null ); var doc = xmlHttp.responseText; 但是,当我尝试运行代码,我得到错误Module child_process.js not found 我假设在XMLHttpRequest.js文件中引用此行 var spawn = require("child_process").spawn 但是,我找不到下载文件夹中的child_process.js添加到目录。 有没有办法包含这个文件,还是有更好的方法来获取源代码? 编辑:使用httpRequest云function Parse.Cloud.define("pushFavorites", function(request, response) { var xpath = require("cloud/xpath.js"), dom = require("cloud/dom-parser.js").DOMParser; var doc; Parse.Cloud.httpRequest({ url: "website.com", […]

使用通用键而不是元素名称作为键将xml转换为json

而不是元素名称作为JSON中的键,我需要生成更多的通用键JSON,描述节点types。 d3.js使用这些types的json文件来生成可视化文件。 使用node.js模块xml2js,我parsing了xml文档的简化版本后得到这个: { "XML": { "$": { "xmlns": "http://example.org/example/2011/1" }, "Building": [ { "BuildingID": [ { "$": { "id": "BuildingAudit" } } ], "ProjectStatus": [ { "Date": [ "2013-07-16" ], "EventType": [ "audit" ] } ] }, { "BuildingID": [ { "$": { "id": "BuildingRetrofit" } } ], "ProjectStatus": [ { "Date": [ "2013-08-06" […]

yeoman不能编辑由其他子生成器创build的XML文件

我试图在一个由另一个创build的子生成器中对XML文件进行更改。 我的主生成器执行提示并确定应使用哪个子生成器。 简单的看起来像这样: var MainGenerator = module.exports = yeoman.generators.Base.extend({ writing: function () { this.composeWith('design:setup', {}); if (this.option.get('someOption')) { this.composeWith('design:extend', {}); } } }); 设置生成器会添加一些在devise的每个变体中使用的文件。 例如一个项目config.xml var SetupGenerator = module.exports = yeoman.generators.Base.extend({ default: function () { // ^ default: makes sure the vsSetup is run before the writing action // of the other sub generators this.fs.copy( […]

如何使用Node xml2js模块转义字符?

我有一个&的XML文件,所以我得到一个错误 [Error: Invalid character in entity name Line: 155 Column: 63 Char: ] 我写了一个函数来转义非法的xml字符: const escapeIllegalCharacters = (xml) => { xml = xml .replace(/&/g,'&amp;') .replace(/"/g, '&quot;') .replace(/'/g, '&apos;') .replace(/>/g, '&gt;') .replace(/</g, '&lt;'); return (xml); } 并把它放到一个valueProcessor中: return parse.parseString(xml, {valueProcessors: [escapeIllegalCharacters]}); 但是我仍然得到相同的错误。 这是错误的方式来使用xml2js模块转义字符?

Node + xmldom:如何更改javascript中单个XML字段的值?

使用节点 v.0.10.29, Express v4.12.0和xmldom v0.1.19,我正在尝试执行以下操作: 脚步 将一个XML文件读入一个string 使用xmldom 将string转换为XML对象 将<name>default</name>字段设置为<name>test</name> 将XML对象转换回string 问题 问题是我设置<name>字段后,它在对象中正确设置,但是当我将它转换为一个string时, <name>字段返回为旧值(错误)。 码 代码如下所示: var fs = require('fs'); var DOMParser = require('xmldom').DOMParser; var XMLSerializer = require('xmldom').XMLSerializer; var filename = "myFile.xml"; fs.readFile(filename, "utf-8", function (err,data) { //CREATE/PARSE XML OBJECT FROM STRING var customerConfig = new DOMParser().parseFromString(data); //SET VALUE TO "TEST" (<name>default</name> TO <name>test</name>) customerConfig.getElementsByTagName("name")[0].childNodes[0].nodeValue […]

Node.jserror handling – 如何处理未定义的值导致错误

以此URL为例: https : //api.eveonline.com/eve/CharacterID.xml.aspx?names=Khan 使用xml2js node.js模块,你可以parsingXML,虽然看起来不太漂亮: var CharacterID = response.eveapi.result[0].rowset[0].row[0].$.characterID; 该应用程序在运行2周后崩溃,全部因为rowset [0]未定义。 在此之前,它因为eveapi没有被定义而崩溃。 真的,我的if-else是否必须像这样才能防止服务器崩溃,由于愚蠢的未定义的对象错误? if (!response.eveapi || !response.eveapi.result[0] || !response.eveapi.result[0].rowset[0] || !response.eveapi.result[0].rowset[0].row[0]) { return res.send(500, "Error"); 除了明显的if (err) return res.send(500, "Error"); error handling在适用的情况下, 未定义错误的一般做法是什么?

XML到JSON – 处理JavaScript中的xml命名空间和别名

我正在尝试使用模块xml2js在node.js中将XML转换为JSON。 如何在访问variables时处理命名空间别名? 下面的代码将我的文件(sampleWithNamespaces.xml) var fs = require('fs'), xml2js = require('xml2js'); var parser = new xml2js.Parser(); fs.readFile('sampleWithNamespaces.xml', function (err, data) { parser.parseString(data, function (err, result) { console.dir(result); console.log('Done'); }); }); sampleWithNamespaces.xml: <d:student xmlns:d='http://www.develop.com/student'> <d:id>3235329</d:id> <d:name>Jeff Smith</d:name> <d:language>JavaScript</d:language> <d:rating>9.5</d:rating> </d:student> 输出: $ node xml2jsTest.js { '@': { 'xmlns:d': 'http://www.develop.com/student' }, 'd:id': '3235329', 'd:name': 'Jeff Smith', 'd:language': 'JavaScript', […]