2012-03-15 7 views
0

私は数ヶ月前に雇った人が書いたxmlパーサを持っています。 xmlは第三者から取り込まれます。このパーティーは最近、XMLにSourceNameという重要なタグを追加しました。私はコードをちょっと混乱させましたが、私はそれをほとんど得ていますが、私は奇妙な結果を得ています。ノードを文字列に変換する

<SourceInfo> 
    <SourceName1>NYT</SourceName1> 
    <SourceName2>BDN</SourceName2> 
</SourceInfo> 

NodeList sourceList = element.getElementsByTagName("SourceName1"); 
    if(sourceList.getLength()>0){ 
     Element sourceElem=(Element) sourceList.item(0); 
     Node sourceName=(Node) sourceElem.getChildNodes().item(0); 
     System.out.println(sourceName); 
    } 

望ましくない返品はNYTの文字列ではなく[#text:NYT]です。

したがって、問題は、ノードsourceNameを値NYTの文字列sourceNameに変換する方法です。

ありがとうございます。

+2

ノードにはおそらくその方法があります。あなたがここで誰も使用していないパーサを知らなければ、あなたを助けることができます。そして、私はこれがパーサのAPIドキュメントにあると確信しています。 – Jochen

+1

System.out.printlnステートメントでgetNodeValue()を試しましたか? –

答えて

1

私は、これはあなたが探しているものだと思う:

System.out.println(sourceName.getNodeValue()); 

*ヨッヘンさんのコメントが有効です。私はあなたがDOM parserをJavaに組み込んで使用していると仮定しました。そうでなければ、この答えはおそらく間違っています。

+0

ええ、AMit Bhargavaも正しいです。コードを短縮する方法はありますか? PHPでこれはライブで行うことができます、なぜJavaは4lineが必要でしょうか? –

+0

DOMテクノロジーはjdk1.4(10年以上)以来存在しています。もはや最善とはみなされませんが、互換性のために保持されます。おそらくJAXBまたはXSLTがあなたのニーズをよりよく満たすでしょう。 – emory