0

NodeListから到達するツリーをたどる必要があります。すべてのノードを順番にトラバースするアルゴリズムが必要です。おそらく詳細ですが、それを実装する方法はありません。再帰が必要だと思います。誰でも助けることができますか?

コードの一部は次のとおりです。 NodeList nodeLista = documento.getElementsByTagName("html");

for (int s = 0; s < nodeLista.getLength(); s++) {
    Node Raiz = nodeLista.item(s);

....

    for (int h = 0; h < nodeLista.getLength(); h++) {

    //Level of depth 1.
    Node Primer_Hijo = nodeLista.item(h); // In the first iteration for the HEAD will enter in the second iteration enter the BODY.

    //Level of depth 2.
    Element SegundoElemento = (Element) Primer_Hijo;
    NodeList ListadeNodos2 = SegundoElemento.getChildNodes();

.....

4

4 に答える 4

0

これは疑似コードです

    traverse_tree(node)   {
    childNodes = node.getChildNodes();
    if(chidNodes is empty){
      print valueOf(node);
      return;
    }
    for each childNode in childNodes{
     traverse_tree(childNode);
    }
}

traverse_tree(rootNode) を呼び出してトラバーサルを開始します //root はツリーのルート ノードです。

于 2012-06-13T17:13:11.073 に答える
0

HTMLの解析には、過去にJerryを使用しました。

それ自体を Java の jquery として請求し、css スタイル セレクターを使用できるようにします。現在、css スタイル セレクターを実装するライブラリがいくつかあると思います。

ユースケースに合わないかもしれませんが、より読みやすいコードにつながります。

于 2012-06-13T17:11:44.610 に答える
0

再帰降下はまさにあなたが探しているものです。

http://en.wikipedia.org/wiki/Recursive_descent_parser

于 2012-06-13T17:01:19.077 に答える
0

このようなもの:

public static void main(String[] args) {
    //get the nodeList
    //...
    for (int h = 0; h < nodeLista.getLength(); h++) {
        Node Primer_Hijo = nodeLista.item(h); 
        navegate(Primer_Hijo);
    }

    //or (better) the root node
    navegate(rootNode);
}

void navegate(Node node){
    //do something with node
    node.getAttributes();
    //...

    for(int i=0; i<node.getChildNodes().getLength(); i++)
        navegate(node.getChildNodes().item(i));
    }
}
于 2012-06-13T17:17:18.263 に答える