Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

XPathAPIについて

下のXMLの<sql name="test">タグのSQLを取得したいのですが、次のコードでうまくいきません。
どのように指定したら取得できるのでしょうか?



// 設定ファイルを取得
Document config = getConfigFile();

String sql = XPathAPI.selectSingleNode(
                config,
"/dataTransfer_system/sqls/sql[@name = test]/text()").getNodeValue();

return sql;



<?xml version="1.0" encoding="UTF-8" ?>
<dataTransfer_system>
<!-- SQL情報  -->
    <sqls>
        <sql name="test">
            select *
             from TABLES
        </sql>
    </sqls>
</dataTransfer_system>

3

回答

85251

閲覧

3件の回答

評価

0

import java.io.File;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import com.sun.org.apache.xpath.internal.XPathAPI;

public class SampleXMLDOM {
    public static void main(String args[]) throws Exception{
        Document document= DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File("sample.xml"));
        Node nl = XPathAPI.selectSingleNode(document, "/dataTransfer_system/sqls/sql[@name='test']/text()");
        System.out.println(nl.getNodeValue());
    }
}

今日DOMを初めて触ったばかりなので、
何故取得できないのか、までは判りませんが(・ω・;)
上記で取得できました。

評価

0

ぁ、'test'これかも。'←

評価

0

コロさんありがとうございます。

ご指摘どおり、'でした。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。