2

重複の可能性:
StaX の使用方法

XML ファイルがあり、Java に特定のタグの値を吐き出させたいと思っています。たとえば、ここに私の XML があります。

<?xml version="1.0"?>
    <dennis>
        <hair>brown</hair>
        <pants>blue</pants>
        <gender>male</gender>
    </dennis>

Javaに「性別」の値を吐き出させたいとしましょう。次のように使用できるコードはありますか

XMLStreamReader.goToTag("gender");
System.out.println(XMLStreamReader.getLocalName());
4

2 に答える 2

1

次のことができます。

StreamSource xml = new StreamSource("input.xml");
XMLStreamReader xsr = xif.createXMLStreamReader(xml);
xsr.nextTag();
while(!xsr.getLocalName().equals("gender")) {
    xsr.nextTag();
}

XPath API

javax.xml.xpathAPIを使用することもできます。

package forum12062255;

import java.io.StringReader;
import javax.xml.xpath.*;
import org.xml.sax.InputSource;

public class XPathDemo {

    private static final String XML = "<dennis><hair>brown</hair><pants>blue</pants><gender>male</gender></dennis>";

    public static void main(String[] args) throws Exception {
        XPathFactory xpf = XPathFactory.newInstance();
        XPath xPath = xpf.newXPath();

        InputSource inputSource = new InputSource(new StringReader(XML));
        String result = (String) xPath.evaluate("//gender", inputSource, XPathConstants.STRING);
        System.out.println(result);
    }

}
于 2012-08-21T21:21:19.090 に答える
0

ギタロカ。

Java を使用した XML 構文解析の勉強を始めたとき、私はこのチュートリアルに従いました。

STaX を使用すると、次のようなものが必要になります (完全なコード リストは掲載しません)。

 if (event.asStartElement().getName().getLocalPart().equals("gender"))

特定のタグ値を 1 つだけ取得する必要がある場合は、DOM パーサーを調べる必要があります。DOM パーサーは XML ドキュメントからツリーを構築するため、要素「gender」にアクセスできます (DOM の例は下のリンクにリストされています)。良い

于 2012-08-21T22:10:15.603 に答える