0

私は次のようなxmlレベルのノードを持っています:

<matrix1>
  <row1>
    <column>679</column>
    <column>9</column>
  </row2>
  <row2>
    <column>78</column>
    <column>29</column>
  </row2>
<matrix1> 

私はここで多くの同様のことを見ましたが、このような正確にはもっとレベルの子ノードではありません、解析プロセスの後にDOMで、親ノードをスキップして直接アクセスできます<column>679</column>か?または、数値を取得するために、各レベルを最下位の子まで繰り返しますか?お手数をおかけしますが、よろしくお願いいたします。

4

1 に答える 1

0

ここで必要なのはおそらくXPath式です。このパターンを使用している場所に関係なく、ドキュメント内の列ノードを選択できます。

//column

ここに作業スニペットがあります:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(____your XML InputStream____);
XPathFactory xPathfactory = XPathFactory.newInstance();
XPath xpath = xPathfactory.newXPath();
XPathExpression expr = xpath.compile("//column");
NodeList nl = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);

詳細については、 Java XPath APIを確認してください。

XML 入力の構文も確認する必要があります。matrix1 と row1 には終了タグがありません。修正された XML は次のとおりです。

<matrix1>
    <row1>
        <column>679</column>
        <column>9</column>
    </row1>
    <row2>
        <column>78</column>
        <column>29</column>
    </row2>
</matrix1>
于 2012-08-05T10:34:06.187 に答える