0

次のようなxmlタグがあるとしましょう。

<test val="val1 ">Test XML</test>

<test>配列に保存できるように、ファイルにタグが含まれるたびに値「val1」を解析したいと思います。

4

1 に答える 1

0

ファイルから XML をロードし、タグ名を持つすべての要素を選択して、testそこから属性値を抽出できます。

基本的:

doc.getElementsByTagName("test")すべての要素を選択するために、見つかった各要素に対して、テキスト コンテンツを取得するためだけに null でない場合は、この属性で指定さ"test"れた属性を選択できます。"val"node.getAttributes().getNamedItem("val")getTextContent()


サンプル コードは次のようになります。

// temporary result list just to store the values found
ArrayList<String> result = new ArrayList<String>();

DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document doc = documentBuilder.parse(new ByteArrayInputStream("<document><test val=\"val1\">Test XML</test><test val=\"val2\">Test XML</test><test val=\"val3\">Test XML</test></document>".getBytes()));
// you could use something like: documentBuilder.parse(new FileInputStream("fileName.ext")); instead

// get test nodes and iterate over it checking test attribute
NodeList elements = doc.getElementsByTagName("test");
for (int i = 0; i < elements.getLength(); i++) {
    Node node = elements.item(i);
    Node attribute = node.getAttributes().getNamedItem("val");
    if (attribute != null) {
        result.add(attribute.getTextContent());
    }
}

// get result values in a string array (if collection is preferred use result instead)
String[] array = result.toArray(new String[] {});

// just print it in a readable format
System.out.println(Arrays.toString(array));

これは印刷されます:

[val1, val2, val3]
于 2012-07-31T18:18:28.340 に答える