5

私はNode.jsに比較的慣れていません。サイズがそれぞれ約 400MB の 83 個の XML ファイルを JSON に変換しようとしています。

各ファイルには次のようなデータが含まれています (ただし、各要素には多数の追加ステートメントがあります)。

<case-file>
  <serial-number>75563140</serial-number>
  <registration-number>0000000</registration-number>
  <transaction-date>20130101</transaction-date>
  <case-file-header>
     <filing-date>19981002</filing-date>
     <status-code>686</status-code>
     <status-date>20130101</status-date>
  </case-file-header>
  <case-file-statements>
     <case-file-statement>
        <type-code>D10000</type-code>
        <text>"MUSIC"</text>
     </case-file-statement>
     <case-file-statement>
        <type-code>GS0351</type-code>
        <text>compact discs</text>
     </case-file-statement>
  </case-file-statements>
  <case-file-event-statements>
     <case-file-event-statement>
        <code>PUBO</code>
        <type>A</type>
        <description-text>PUBLISHED FOR OPPOSITION</description-text>
        <date>20130101</date>
        <number>28</number>
     </case-file-event-statement>
     <case-file-event-statement>
        <code>NPUB</code>
        <type>O</type>
        <description-text>NOTICE OF PUBLICATION</description-text>
        <date>20121212</date>
        <number>27</number>
     </case-file-event-statement>
   </case-file-event-statements>

sax、node-xml、node-expat、xml2json など、さまざまな Node モジュールを試しました。明らかに、ファイルからデータをストリーミングし、XML パーサーを介してパイプしてから、JSON に変換する必要があります。

また、表面的ではありますが、Xml を解析する方法を説明しようとして、多くのブログなどを読んでみました。

Node ユニバースでは、最初に sax を試しましたが、JSON に変換できる形式でデータを抽出する方法がわかりません。xml2json はストリームでは機能しません。node-xml は有望に見えますが、意味のある方法でチャンクを解析する方法がわかりません。node-expat は、博士号を必要とするように見える libexpat ドキュメントを指しています。Node elementree は同じことを行い、Python の実装を指していますが、何が実装されているか、またはどのように使用するかについては説明していません。

誰かが私が始めるために使用できる例を教えてもらえますか?

4

3 に答える 3

0

最後の回答を考えると、今では作業プロセスができていると思います。

とにかく、受信データを SAX で正常に解析した場合、ソリューションは単純にデータを設計のオブジェクトに配置し、 yourStream.write(JSON.stringify(yourObject)) それを使用してストリーム出力するだけです。

于 2013-04-08T11:29:45.923 に答える