Node.js中的XML(使用javascript)

XML in Node.js (Using Javascript)

本文关键字:使用 javascript XML js 中的 Node      更新时间:2023-09-26

我已经将模拟的XML数据存储在硬盘上(称为simmedData.xml(。 我也有通过Web端点(http://localhost:8079/realData(提供的"真实"数据("真实"数据是动态的(。

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

我想使用 node.js 来托管 mergedData 端点 -- 当请求 mergedData 时,有没有一种简单的方法将这些 xml 文档合并在一起?

例如:

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://localhost: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://localhost: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感知"合并,那么你可能会寻找一个XML解析器来做DOM操作,或者一个XSLT转换器来运行一个样式表来合并两者。我确定节点有libxml/libxslt包装器:

  • XSLT for node.js
  • 节点的 XML 解析器.js

我最近在SO上回答了一个关于XML与XSLT合并的问题,但如果你只是做一个简单的"追加",那么它就会不那么棘手。