0

要素が唯一の子である場合、直接の親から要素をアンラップするにはどうすればよいですか。私の JSoup のバージョンは 1.6.3 ですが、アップグレードできません。

:only-child セレクターを使用してみましたが、私のバージョンの JSoup では使用できないと思います。

例えば

<p>
    <span>Some text</span>
</p>

なるはず…

<span>Some text</span>

しかし...

<div>
    <p>Some text</p>
    <p>Some more text</p>
</div>

そのままでいい。

ありがとう、マイケル。

アップデート:

望む結果…

次の状況で、スパンを選択する必要があります (つまり、子要素がその親の唯一の子である場合):

<p><span>Text</span></p>

次の状況では、スパンを選択したくありません(つまり、(1) 子要素がその親の唯一の子ノードであるが、親にもコンテンツが含まれる場合 (2) 親要素に複数の子が含まれる場合):

<p>Some text <span>continued</span></p>

<p><span>Text</span><a href="#">Link</a></p>

正しい子アイテムを選択したら、それらを親要素からアンラップします。これは unwrap() メソッドを使用して実行できます。私の主な問題は、最初にアンラップする子要素を選択することです。

4

1 に答える 1

1

以下のコードは、子が 1 つだけで、タグがElement何であるかに関係なく を検索します。HTML

 Elements items = doc.select("body *");

    for (Element item : items) {

        if(item.parent() != null && item.parent().children().size() == 1 &&  StringUtil.isBlank(item.parent().ownText()))
        {
            System.out.println(item.parent().tagName() + " -> " + item.tagName() + " [" + item.ownText() + "]");
        }

    }
于 2013-07-26T14:09:08.093 に答える