0

これは私のxml形式です:

<taxmann>
    <docdetails>
        <info id="104010000000006516" date="20120120">
            <physicalpath>\\192.168.1.102\CMS\DATA</physicalpath>
            <filepath isxml="N">\CIRCULARS\DIRECTTAXLAWS\HTMLFILES\CIRDGBACDD4836150012011122012012.htm</filepath>
            <summary></summary>
            <description></description>
            <heading>DGBA.CDD. NO.H- 4836 /15.02.001/2011-12 | Clarification on Regulation of Interest Rates for Small Savings Schemes</heading>
            <correspondingcitation/>
            <hasfile>YES</hasfile>
            <sortby>20120328155728957</sortby>
            <parentid></parentid>
            <parentchapterid></parentchapterid>
        </info>
    </docdetails>
</taxmann>

見出しのデータを取得できますが、日付と ID も印刷したいのですが、これができません。実装方法を教えてください。

XMLParser parser = new XMLParser();
    String xml = parser.getXmlFromUrl(url); // getting XML

    Document doc = parser.getDomElement(xml); // getting DOM element

    NodeList nl = doc.getElementsByTagName(KEY_ITEM);

    ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();
    HashMap<String, String> map;

    for (int i = indexRowStart; i < indexRowEnd; i++) {
        Element e = (Element) nl.item(i);
        // adding each child node to HashMap key => value
        map = new HashMap<String, String>();
        map.put("RowID", String.valueOf(RowID));

        String Heading= parser.getValue(e, KEY_NAME).replace("|", "|\n").replace("|", "");
        map.put(KEY_NAME,Heading);

        // adding HashList to ArrayList
        menuItems.add(map);
}

これは私のコードです。日付と ID も取得できるように、解析方法を教えてください。

4

2 に答える 2

3

これがそのxmlファイルを読み取る最も簡単な方法であると確信していますか?少し複雑すぎるように見えます。ツリー構造を手動でナビゲートしてみませんか?

私はあなたがそれをこのように得るだろうと言うでしょう:

SAXBuilder builder = new SAXBuilder();     
Document doc;
doc = builder.build(file);

//rootElement would be your "taxmann" element
Element rootElement =   doc.getRootElement();
Element docdetailsElement = rootElement.getChild("docdetails");
Element infoElement = docdetailsElement.getChild("info");

String id = infoElement.getAttributeValue("id");
String date = infoElement.getAttributeValue("date");
于 2012-10-10T09:57:22.970 に答える
0

Element#getAttribute(String name)メソッドを使用する必要があります。あなたの場合、次のようなものです。

String id=e.getAttribute("id");
String date=e.getAttribute("date");
于 2012-10-10T09:56:38.660 に答える