Tag: xmldom

如何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方法丢失或类似的东西)。

如何parsing从SOAP WS的XML响应创build的JSON?

我需要帮助parsing从NodeJS中SOAP Web服务的XML响应创build的JSON。 我想要一个JSON数组notifications 。 XML如下所示: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:getNotificationsResponse xmlns:ns2="—url—"> <return> <notifications> <ackRequired>false</ackRequired> <body>Testing Notitfications</body> <created>1498798404874</created> <gpsAlt>1.0</gpsAlt> <gpsLat>1.0</gpsLat> <gpsLong>1.0</gpsLong> <messageId>253</messageId> <priority>INFORMATIONAL</priority> <senderClientId>PMC0</senderClientId> <status>SENT</status> <subject>Test Notification</subject> <updated>1498798404874</updated> <userId>1</userId> <userLogin>ipics</userLogin> </notifications> <notifications> <ackRequired>false</ackRequired> <body>Test notitfication</body> <created>1498797535714</created> <gpsAlt>0.0</gpsAlt> <gpsLat>0.0</gpsLat> <gpsLong>0.0</gpsLong> <messageId>244</messageId> <priority>HIGH</priority> <senderClientId>PMC_1234</senderClientId> <status>SENT</status> <subject>Test</subject> <updated>1498797535714</updated> <userId>1</userId> <userLogin>ipics</userLogin> </notifications> <notifications> <ackRequired>false</ackRequired> <body>Testing Notitfications</body> <created>1498794764538</created> <gpsAlt>1.0</gpsAlt> <gpsLat>1.0</gpsLat> <gpsLong>1.0</gpsLong> <messageId>239</messageId> […]

用NodeJS写入一个大的XML文件,而不用重写整个XML文件

我正在编写一个Web应用程序(使用NodeJS),允许监视小型计算机/设备(如Freebox)。 要添加一个新的设备来监视,你必须从一个专门的菜单在Web应用程序中以graphics方式创build它。 设备存储在一个用XML编写的文件中:XML是一种强制性格式,我不能采取任何其他措施。 在表示对象“设备”的XML块中,一些字段将不会修改:名称,制造商,模型,… 相反,其他字段经常更新(连接date,RAM信息,CPU信息,…),并在XML文件中产生大量的文字。 为了写入XML文件,我使用了Node模块'xmldom',它需要locking来写入并完全重写文件。 performance的水平不是我所希望的。 而且,这种写作方式不能抵抗我的服务器的突然关机。 我的问题是:解决我的问题最好的方法和技术是什么,并回答以下约束: – 经常写入数据,而不必每次都重写整个XML文件 – 在发生崩溃(突然closures)

添加限定的XML元素不会inheritance名称空间URI

我怎样才能将一个带有ns前缀的元素附加到另一个元素,并使其inheritance文档中的namespaceURI映射? 例如:实例化parsingXMLstring的文档: pp:q元素从root元素inheritancenamespaceURI == 'abc' ,但将新元素pp:q附加到root ,新元素具有namespaceURI == null doc = new DOMParser().parseFromString( '<root xmlns:pp="abc">' +'<pp:q/>' +'<q/>' +'</root>' ,'text/xml'); root = doc.firstChild; x = root.getElementsByTagName("pp:q").item(0); console.log(x.namespaceURI); // logs abc y = doc.createElement('pp:q') root.appendChild(y) console.log(y.namespaceURI); //logs null 这个例子使用xmldom 库在nodejs中xmldom [下面回复kjhughes] 我也尝试了createElementNS ,但是我觉得这种方式也有问题。 将这些行附加到代码中: a = doc.createElementNS('abc', 'pp:q'); root.appendChild(a) console.log(a.namespaceURI); //abc — i may say it works, […]

是否有可能从DOM获取所有处理指令元素

我有一个包含<?myinst contents ?>forms的处理指令的XML文件。 如果可能的话,我需要在一个集合中使用单个DOM查询来获取它们。 这可能没有迭代所有的树?

如何使用XML DOM的JavaScript删除XML父标签?

我正在处理replaceXML节点。 我有内部节点本身删除父节点的问题。 我想删除less数内部节点的父节点,并保留一些其他的内部节点。 xmlstring的来源: <root> ***<bPoint id="1" > <bLabel> <text></text> </bLabel> <content src="p112" />*** <bPoint id="2"> <bLabel> <text>xxx</text> </bLabel> <content src="p1123" /> </bPoint> ***</bPoint>*** <bPoint id="bPoint-2" > <bLabel> <text>xxx</text> </bLabel> <content src="p1123" /> </bPoint> </root> 我的输出将是 <root> <bPoint id="2"> <bLabel> <text>xxx</text> </bLabel> <content src="p1123" /> </bPoint> <bPoint id="bPoint-2" > <bLabel> <text>xxx</text> </bLabel> <content src="p1123" /> […]