Node.js中的XML(使用Javascript)

我有模拟XML数据存储在硬盘(称为simmedData.xml)。 我还通过Web端点( http://localhost:8079/realData )获得了“真实”数据(“真实”数据是dynamic的)。

XML文档的格式完全相同,但我想将它们合并到http://localhost:8080/mergedData一个可用端点中。

我想使用node.js来承载mergedData端点 – 是否有一个简单的方法来合并这些XML文件在一起请求mergedData时?

例如:

simmedData.xml

 <site:Tracks xmlns:site='http://mysite/site'> <site:track id='1' latitude='37.82091918923291' longitude='128.87375778822812' altitude='9753.6005859375' bearing='10.542624087704585' speedInKnots='454.6067199707031' /> <site:track id='2' latitude='37.45048387959727' longitude='129.49111126654887' altitude='9144.0' bearing='190.90400586790983' speedInKnots='436.89837646484375' /> </site:Tracks> 

HTTP://本地主机:8079 / realData

 <site:Tracks xmlns:site='http://mysite/site'> <site:track id='1001' latitude='39.82093291' longitude='128.87375722812' altitude='9753.60375' bearing='10.542704585' speedInKnots='454.6707031' /> <site:track id='1002' latitude='39.387959727' longitude='129.4126654887' altitude='9144.0' bearing='90.90790983' speedInKnots='436.8984375' /> <site:track id='1003' latitude='40.82093291' longitude='138.87375722812' altitude='9753.5' bearing='10.542704585' speedInKnots='454.6707031' /> <site:track id='1004' latitude='40.387959727' longitude='139.4126654887' altitude='9124.0' bearing='90.90790983' speedInKnots='436.8984375' /> </site:Tracks> 

HTTP://本地主机:8080 / mergedData

 <site:Tracks xmlns:site='http://mysite/site'> <site:track id='1' latitude='37.82091918923291' longitude='128.87375778822812' altitude='9753.6005859375' bearing='10.542624087704585' speedInKnots='454.6067199707031' /> <site:track id='2' latitude='37.45048387959727' longitude='129.49111126654887' altitude='9144.0' bearing='190.90400586790983' speedInKnots='436.89837646484375' /> <site:track id='1001' latitude='39.82093291' longitude='128.87375722812' altitude='9753.60375' bearing='10.542704585' speedInKnots='454.6707031' /> <site:track id='1002' latitude='39.387959727' longitude='129.4126654887' altitude='9144.0' bearing='90.90790983' speedInKnots='436.8984375' /> <site:track id='1003' latitude='40.82093291' longitude='138.87375722812' altitude='9753.5' bearing='10.542704585' speedInKnots='454.6707031' /> <site:track id='1004' latitude='40.387959727' longitude='139.4126654887' altitude='9124.0' bearing='90.90790983' speedInKnots='436.8984375' /> </site:Tracks> 

如果你想做任何一种智能的“XML感知”合并,那么你可能会看着一个XMLparsing器来执行DOM操作,或者一个XSLT转换器来运行一个合并这两者的样式表。 我相信有节点的libxml / libxslt包装:

  • 适用于node.js的XSLT
  • 用于node.js的XMLparsing器

我最近在这里回答了关于XML与XSLT合并的一个问题,但是如果你只是做一个简单的“追加”,那么它将不那么棘手。