Tag: xml

无法在node.js中转换iTunes XML播放列表

前段时间我写了一个快速的小节点命令行实用工具,将XML格式的iTunes播放列表转换为M3U,XSPF等,这样我就可以在工作的Android系统上使用它们。 *我有一个25吉字节的音乐collections,doubletwist等人只是龙骨,并试图与我的Mac同步 起初这没什么问题,但是随着音乐collections的增长,我遇到了一个问题:任何媒体播放器都无法find任何带有非英文Unicode字符的文件,例如ñ,í和几乎所有的日文汉字。 它并不是每一个造成这个问题的angular色,但大部分是它的一个东西。 由于itunes文件path是部分url编码的(并且不需要匹配目标格式的约束),并且需要部分replace为目标机器上的正确path,所以我有以下代码来处理文件path(剥离不相关的东西): let location; // need try/catch because some track names contain unescaped '%' that // cause the decode function to throw. try { location = decodeURIComponent(x.location.slice(7)); } catch (e) { // function references a hash of about 200 url encodings and // replaces occurences of them in the path, poor man's […]

如何通过节点js中的xpath获取属性值

给定XML <ValCredLookup> <ValCredName name="val-cred-api-cust"> <certificate thumbprint="12345"> <clientID id="1bbfea"> <Merchant-id>123456789</Merchant-id> </clientID> </certificate> </ValCredName> </ValCredLookup> 如何使用xpath通过属性值获取证书或客户端ID? 我曾尝试过这样的事情 doc = new xmldom().parseFromString(data, 'application/xml'); var xpath = require('xpath'); var valcredname = xpath.select("/ValCredLookup/ValCredName/@name='valcred-api-cust'", doc); 哪些工作,但如果我尝试 var valcredname = xpath.select("/ValCredLookup/ValCredName/@name='val-cred-api-cust'/certificate", doc); 这不起作用。 另外我如何引用xpath中的variables var vcname = 'valcred-api-cust'; var nodes = xpath.select("/ValCredLookup/ValCredName/@name=????, doc); 我真正需要做的是获取clientID下的元素,使用xpath属性名,指纹和id,这些都是variables。 喜欢这个 var vc = 'val-cred-api-cust'; var tp = […]

问题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 = […]

从SonosparsingXML

我试图parsing从Sonos订阅的XML输出我在Node.js这样做我已经尝试了两个不同的npm模块,xml2js和libxmljs,但我似乎无法正确。 我find的所有例子都是一个简单的XML,但是我正在尝试parsing一个更高级的文件,当你知道如何处理它时可能并不难。 我希望有人能帮助我,让我明白如何处理这样的文件。 在我的例子中,然后我想要22的值: <Volume channel="Master" val="22"/> 这是XML文件 <e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0"> <e:property> <LastChange> <Event xmlns="urn:schemas-upnp-org:metadata-1-0/RCS/"> <InstanceID val="0"> <Volume channel="Master" val="22"/> <Volume channel="LF" val="100"/> <Volume channel="RF" val="100"/> <Mute channel="Master" val="0"/> <Mute channel="LF" val="0"/> <Mute channel="RF" val="0"/> <Bass val="0"/> <Treble val="0"/> <Loudness channel="Master" val="1"/> <OutputFixed val="0"/> <HeadphoneConnected val="0"/> <SpeakerSize val="5"/> <SubGain val="0"/> <SubCrossover val="0"/> <SubPolarity val="0"/> <SubEnabled val="1"/> […]

如果从服务器(meteor)调用GET响应内容为空,

所以我想要做的是在Meteor服务器端使用标准的HTTP包parsing这个基于XML的RSS源。 混淆的是,如果从服务器调用,我收到一个空的内容响应,但如果我从客户端调用相同的端点,那么我会收到一个正常的XML内容。 我尝试从使用Meteor.call的客户端调用服务器方法,也试图用meteorshell调用它。 同样的结果 这是Meteor方法: readRssFeed: function() { try { HTTP.get("http://agenda.regiolive.ch/feed/", {}, function(error, response) { console.log(response) //parse xml }); } catch (error) { console.log(error); } }, 答复是: I20170514-15:20:06.474(3)? { statusCode: 200, I20170514-15:20:06.474(3)? content: '', I20170514-15:20:06.474(3)? headers: I20170514-15:20:06.474(3)? { date: 'Sun, 14 May 2017 12:12:04 GMT', I20170514-15:20:06.474(3)? server: 'Apache-Coyote/1.1', I20170514-15:20:06.474(3)? 'access-control-allow-origin': '*', I20170514-15:20:06.474(3)? 'content-type': 'application/xml;charset=UTF-8', I20170514-15:20:06.474(3)? […]

如何使用nodejs soap创buildwsdl soap请求

我用node.js的肥皂发送肥皂请求,但我不断收到错误。 在SoapUI中,我的xml如下所示: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:acl="http://schemas.datacontract.org/2004/07/Acl.WcfService.Model"> <soapenv:Header/> <soapenv:Body> <tem:GetOrder> <!–Optional:–> <tem:args> <!–Optional:–> <acl:ApiKey></acl:ApiKey> <!–Optional:–> <acl:OrderId></acl:OrderId> </tem:args> </tem:GetOrder> </soapenv:Body> </soapenv:Envelope> 这是我的代码: var args = { 'args': { 'ApiKey' : '***', 'OrderId' : '***' } }; soap.createClient(wsdlURL, function (err, soapClient) { soapClient.GetOrder(args, function (err, result) { //the result goes here if (err) { console.log(err); return; } console.log(result); […]

Node.js http.get xml返回'转义'

我正在使用JavaScript(节点6.x)中的一个简单的AWS Lambda函数,它应该代理意大利新闻提供者的RSS。 这是函数的代码: var http = require("http") exports.handler = (event, context, callback) => { http.get("http://www.milanotoday.it/rss/", (response) => { response.setEncoding("utf8") let xml = "" response.on("data", (chunk) => { xml += chunk }) response.on("end", () => { callback(null, xml) }) }) } 它工作,或者至less它加载xmlvariables内的响应。 我不明白为什么string是这样的: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<rss version=\"2.0\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\"… 这似乎是一种“逃脱”。 有人可以帮我吗? 先谢谢你…

使用Node JS更改XML数据的值

我有一个如下所示的XML文档: <Data id="1401" href="http://222222222"> <definition id="12218" href="http://11"></definition> <Data-List count="1"> <DataStep type="3"> <completed_time>07/04/2017 17:18:11</completed_time> <status>3</status> </DataStep> </Data-List> <information>abcdefg</information> </Data> 我想将information数据abcdefg更改为来自不同variables的另一个string。 所以看起来像这样: <Data id="1401" href="http://222222222"> <definition id="12218" href="http://11"></definition> <Data-List count="1"> <DataStep type="3"> <completed_time>07/04/2017 17:18:11</completed_time> <status>3</status> </DataStep> </Data-List> <information>example</information> </Data> 这是可能的,直接在节点的JS没有改变这个XML到一个JSON,修改它,然后转换回XML? 我已经尝试过,但它似乎没有工作,创build奇怪的数组和$的XML转换。 任何build议,我怎么能做到这一点?

插入stream式XML数据库

我试图有效地插入大量的数据(XML文件大小超过70GB),而不会崩溃我的MongoDB服务器。 目前这就是我在NodeJS中使用xml-stream所做的: var fs = require('fs'), path = require('path'), XmlStream = require('xml-stream'), MongoClient = require('mongodb').MongoClient, assert = require('assert'), ObjectId = require('mongodb').ObjectID, url = 'mongodb://username:password@my.server:27017/mydatabase', amount = 0; var stream = fs.createReadStream(path.join(__dirname, 'motor.xml')); var xml = new XmlStream(stream); xml.collect('ns:Statistik'); xml.on('endElement: ns:Statistik', function(item) { var insertDocument = function(db, callback) { db.collection('vehicles').insertOne(item, function(err, result) { amount++; if (amount […]

js2xmlparser不parsing数字键

我想从json对象创buildxml文件,使用js2xmlparser。 我的代码如下: var js2xmlparser = require("js2xmlparser"); var data = { "product": "painting", "88CODE": "-2" }; console.log(js2xmlparser.parse("product", data)); 但它会抛出一个错误,如下所示: E:\projects\xml-generator\node_modules\xmlcreate\lib\nodes\XmlElement.js:94 throw new Error("name should not contain characters not" ^ Error: name should not contain characters not allowed in XML names at XmlElement.set [as name] (E:\projects\xml-generator\node_modules\xmlcreate\lib\nodes\XmlElement.js:94:23) at new XmlElement (E:\projects\xml-generator\node_modules\xmlcreate\lib\nodes\XmlElement.js:72:20) at XmlElement.element (E:\projects\xml-generator\node_modules\xmlcreate\lib\nodes\XmlElement.js:218:23) at parseObjectOrMapEntry (E:\projects\xml-generator\node_modules\js2xmlparser\lib\main.js:130:33) at […]