1

私はJavaとXMLDOMパーサーで新しく働いています。xmlデータを読み取り、列と行のタイプを通知して保存するなどの要件がありました。例:sample.xmlファイル

<staff>
        <firstname>Swetha</firstname>
        <lastname>EUnis</lastname>
        <nickname>Swetha</nickname>
        <salary>10000</salary>
    </staff>
    <staff>
        <firstname>John</firstname>
        <lastname>MAdiv</lastname>
        <nickname>Jo</nickname>
        <salary>200000</salary>
    </staff>

このXMLファイルを読み取って、上記の形式で保存する必要があります。

firstName,lastName,nickName,Salary
swetha,Eunis,swetha,10000
john,MAdiv,Jo,200000

Javaコード:

NodeList nl= doc.getElementsByTagName("*");

        for(int i=0;i< nl.getLength();i++)
        {
            Element section = (Element) nl.item(i);

             Node title = section.getFirstChild();
              while (title != null && title.getNodeType() != Node.ELEMENT_NODE)
              {
                   title = title.getNextSibling();
                if (title != null)
              {
                String first=title.getFirstChild().getNodeValue().trim();
                    if(first!=null)
                    {
                        title = title.getNextSibling();
                    }
                System.out.print(first + ",");
               } }
              System.out.println("");
        }//for

上記のコードを実行しましたが、上記の列と行の形式でデータを取得する方法を見つけることができません。誰かが私の問題を解決するのを手伝ってくれませんか?私は過去何日もそれを調べています

4

2 に答える 2

1

これは宿題のように思えるので、いくつかのヒントを示します。

  • 講師が XML DOM の処理に関する講義ノートや例を提供している可能性があります。それらをすべてもう一度読んでください。

  • このgetElementsByTagNameメソッドは、要素名をパラメーターとして受け取ります。 "*"は有効な要素名ではないため、呼び出しは何も返しません。

  • コードは XML の構造を反映する必要があります。この場合の XML 構造は N 個の要素で構成され、各要素には、、およびstaffという名前の要素が含まれます。firstnamelastnamenicknamesalary


講師は、XSLT や XML バインディング メカニズムなどを使用してこれを簡素化することを期待している可能性もあります。(あるいは、これXML ではなく XMI を意図していたのかもしれません ... これを処理する他の方法がある ...)


データを動的に読み取るため、getElementsByTagName メソッドのパラメーター "*" を保持しました。

まあ、それはうまくいきません!! DOMgetElementsByTagNameメソッドは、いかなる種類のパターンも受け入れません。

コードをジェネリックにしたい場合は、getElementsByTagName. DOM のルート ノードから始めて、ツリーを上からたどる必要があります。

サンプルデータを教えてください。

いいえ、講師はコピー元のコードを提供することを承認しません。ただし、Web 上には、何をする必要があるかを理解するのに役立つ XML DOM チュートリアルがたくさんあることを指摘しておきます。一番いいのは、自分で仕事をすることです。あなたはその方法でより多くを学びます...そしてそれがあなたの宿題の要点です!

于 2012-07-26T09:36:12.073 に答える
0

1.DOM Parser全体XML fileを解析して を作成しDOM objectます。

2.要求が Web サービスで起動されたときに返される出力のタイプと xml の構造に常に注意する必要があります。

3. Web サービスから返される応答の XML 構造は動的ではありませんが、child elements値と属性は動的にすることができます。

4.この動的な動作を次の方法で処理する必要がありtry/catch blockます。

DOM PARSER の詳細については、このサイトを参照してください...

http://tutorials.jenkov.com/java-xml/dom.html

于 2012-07-26T12:27:47.770 に答える