7

このインターフェースのドキュメントでは、テキストノードはすべて、実際のタグ名ではなく、名前に対して「#text」を返すと記載されています。しかし、私がやっていることには、タグ名が必要です。

// I'm using the following imports
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;


// In the .xml input file
<country>US</country>  // This is a "text node" .getTextContent()
                       // returns "US", I need "country" and .getNodeName() 
                       // only returns "#text"

タグ名にアクセスするにはどうすればよいですか? これは何とか可能でなければなりません。私はハックな解決策を気にしません。

ドキュメント:

http://www.w3schools.com/dom/dom_nodetype.asp

http://www.w3.org/2003/01/dom2-javadoc/org/w3c/dom/Node.html

ありがとうございました。

4

1 に答える 1

14

どのノードが関与しているかを誤解していると思います。この XML:

<country>US</country>

... 2 つのノードが含まれています。

  • country要素_
  • US のコンテンツを含むテキスト ノード

要素はテキスト ノードではなく、要素ではないため、テキスト ノードには要素名がありません。これらは異なるノードであることを理解することが重要です。それがあなたの混乱の元だと思います。

現在テキスト ノードを見ている場合は、 を使用node.getParentNode().getNodeName()して要素名を取得できます。または要素ノードから、 を呼び出すことができますgetTextContent()

于 2013-07-31T20:38:25.077 に答える