1

シミュレートされた XML データがハードディスクに保存されています (simmedData.xml と呼ばれます)。また、Web エンドポイント ( ) を介して提供される「実際の」データ (「実際の」データは動的) も取得していますhttp://localhost:8079/realData

XML ドキュメントの形式はまったく同じですが、で利用可能な 1 つのエンドポイントに「マージ」したいと考えています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>
4

1 に答える 1

3

何らかのインテリジェントな「XML 対応」のマージを行いたい場合は、DOM 操作を行う XML パーサーや、この 2 つをマージするスタイルシートを実行する XSLT トランスフォーマーを検討することになるでしょう。ノード用の libxml/libxslt ラッパーがあると確信しています。

私は最近、XSLT との XML マージに関する SO での質問に答えましたが、単純な「追加」を行うだけであれば、それほどトリッキーではありません。

于 2012-05-16T23:11:37.910 に答える