0

jspページから送信された値に従って、ノードを動的に読み取ろうとしています。しかし、どういうわけか私は for ループで立ち往生しています。このxmlがあるとします:

<123>
    <a1>A</a1>
    <a2>B</a2>
    <a3>C</a3>
</123>

そして、私はこの関数を使用してノードを読み取り、出力を取得しています:

try {
    PdfReader pdfReader = new PdfReader(fileName);
    PdfStamper pdfStamper = 
        new PdfStamper(pdfReader,new FileOutputStream(fileName));
    String xmlRecords = XmlString;
    DocumentBuilder db = 
        DocumentBuilderFactory.newInstance().newDocumentBuilder();
    InputSource is = new InputSource();
    is.setCharacterStream(new StringReader(xmlRecords));
    Document doc = db.parse(is);
    NodeList nodes = doc.getElementsByTagName("123");

    for(int i=1; i <= divlen; i++) {             
        for (int j = 0; j < nodes.getLength(); j++) {
            Element element = (Element) nodes.item(j);
            NodeList aval = element.getElementsByTagName("a"+i);
            Element line = (Element) aval.item(0);
            int avalue = Integer.parseInt(getCharacterDataFromElement(line));
        }
    }            
    pdfStamper.close();
}

ここdivlenで、jsp ページによって割り当てられる「a」の総数です。しかし、fora2 ノードを削除して残りを送信した場合、a1 および a3 ノードのループを実行するにはどうすればよいですか??

4

1 に答える 1

-1

あなたの状況では、3 つのリスト (タグ a1、a2、a3 ごとに 1 つ) を作成します。

その場合、内側の for ループ (j) のみがあり、タグ名に従って要素をリストの 1 つに配置します。

最後に、このループの後、必要な目的のために各リストの各要素を処理します。

于 2013-01-15T15:51:00.130 に答える