0
    NodeList nList2 = doc.getElementsByTagName("dep");
    Map<String, List<Map<String, String>>> depMap = new HashMap<String, List<Map<String, String>>>();
    for (int temp = 0; temp < nList2.getLength(); temp++) {
      Element el = (Element)nList2.item(temp);
      String type=el.getAttribute("type");
      Node nNode = nList2.item(temp);
      if (nNode.getNodeType() == Node.ELEMENT_NODE) {
        Element eElement = (Element) nNode;
        List<Map<String,String>> depList = new ArrayList<Map<String,String>>();
        String governor = getTagValue("governor", eElement);
        String dependent = getTagValue("dependent", eElement);
        Map<String, String> govdepmap = new HashMap<String, String>();
        govdepmap.put(governor, dependent);
        depList.add(govdepmap);
        List<Map<String,String>> flist = new ArrayList<Map<String,String>>();
        flist.add(govdepmap);
        depMap.put(type, flist);
      }
    }

XML ファイルには次の構造があります。

   <basic-dependencies>
              <dep type="nsubj">
                <governor idx="4">going</governor>
                <dependent idx="1">I</dependent>
              </dep>

ここで、「governor」および「dependent」タグの「idx」属性を保存したいと考えています。どのコードを変更または追加する必要がありますか?

4

1 に答える 1

0

次のようなことができます:

    NodeList liste = eElement.getElementsByTagName("governor");
    NodeList liste2 = eElement.getElementsByTagName("dependent");

1 つのガバナーに対して常に 1 つの依存関係がある場合は、次のことができます。

    for(int i=0; i<liste.getLength(); i++){
        Element e = (Element)liste.item(i);
        Element e2 = (Element)liste2.item(i);
        govToIdxMap.put(governor,e.getAttribute("idx"));
        depToIdxMap.put(dependent,e2.getAttribute("idx"));
    }
    List<Map<String,String>> listMap = new ArrayList<>();
    listMap.add(govToIdxMap);
    listMap.add(depToIdxMap);
    Map<String,List<Map<String,String>>> final = new Map<String,List<Map<String,String>>>();
    final.put(governor,listMap);
于 2012-07-05T09:26:40.457 に答える