0

Javaで簡単なXMLパーサーを書いていますが、

プロパティ ファイルから XML タグ名を読み取る方法を教えてください。例:次のような XML ファイルがある場合

<parent>
    <child>1</child>
    <child2>2</child2>
</parent>

構成ファイルからタグ名を読み取りたい。ここに私が現在取り組んでいるコードがあり、データを読み取るために test.xml ファイルを使用しています。

public class xml2 
{
    public void xmlR(File f)
    {
        try
        {
            FileInputStream IF=new FileInputStream(f);
            DataInputStream data=new DataInputStream(IF);
            BufferedReader buf=new BufferedReader(new InputStreamReader(data));
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(f);
            doc.getDocumentElement().normalize();
            NodeList nList = doc.getElementsByTagName("test");

            File file=new File("xml.txt");
            BufferedWriter writer = new BufferedWriter(new FileWriter(file));

            for (int temp = 0; temp < nList.getLength(); temp++) 
                {

                Node nNode = nList.item(temp);
                if (nNode.getNodeType() == Node.ELEMENT_NODE) 
                {

                    Element eElement = (Element) nNode;
                    writer.write("ID : " + getTag("id", eElement));
                    writer.newLine();
                    writer.write("Name : " + getTag("Name", eElement));
                    writer.newLine();
                    writer.write("AGE: " + getTag("age", eElement));
                    writer.newLine();
                    writer.flush();
                    writer.write("-----------------------");writer.newLine();
                }
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }

    private static String getTag(String sTag, Element eElement) 
    {
        NodeList nlList = eElement.getElementsByTagName(sTag).item(0).getChildNodes();

        Node nValue = (Node) nlList.item(0);

        return nValue.getNodeValue();
    }

    public static void main(String args[])
    {
        xml2 x=new xml2();
        x.xmlR(new File("test.xml"));
    }
}
4

1 に答える 1

1

構成ファイルを示していないため、動作するコードを提供することはできませんが、通常、この種の XML の場合、最も簡単な方法は、形式の XPath 式を使用して構成ファイルから各値を取得すること/config/param[@name=$xxx]/@valueです。

あなたは DOM を使用しています。これは、XML に慣れていない Java プログラマーのデフォルトの選択肢のようです。しかし、DOM は古く、肥大化しており、友好的ではありません。人々がそれを使用する唯一の理由は、DOM が JDK に組み込まれているからです。JDOM や XOM など、はるかに優れた代替手段があります。

于 2012-06-22T07:08:42.970 に答える