0

スパンの名前を付けるためにパターンをコンパイルする必要がありますが、無駄に私が望むものを得ることができないかもしれませんそれはこのパターンが書かれている方法かもしれません私は完全に正しくない何かを作ったことを知っています..これは私のhtmlコード:

<span class="libelleAttributPageParametrage"> 
 "Libellé de facturation"
<font color="#C60307">*</font>
</span>

これは私のJavaコードです:

 public List<String> getAllSpan()
{
    String HTMLSource = priceSelenium.getHtmlSource();
    priceSelenium.getBodyText();
    List<String> ListOfSpan = new ArrayList<String>();
    Pattern p = Pattern.compile( "<SPAN[^>]*>([\\w\\d\\s\\n\\r()/°@\\.\\-àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]*)</SPAN>" );
    Matcher m = p.matcher( HTMLSource );
    while ( m.find() )
    {
        if ( !m.group( 1 ).isEmpty() )
        {
            ListOfSpan.add( m.group( 1 ) );
        }
    }
    return ListOfSpan;
}

ListOfSpanに必要なのは、「Libellédefacturation」です。

前もって感謝します

4

1 に答える 1

1

HTML を解析する場合は、HTML パーサー ライブラリ ( jsoupなど) を使用する必要があります。これにより、HTML を表すオブジェクト グラフが得られます。これを使用して、<span>関心のあるオブジェクトに移動し、 のようなものを呼び出すことができますspanElem.attr("name")

HTML は通常の言語ではないため、HTML をテキストとして扱い、正規表現で部分を抽出しようとすることは厳密には不可能です。単純なケースではしばらくは機能する可能性がありますが、それでも非常に複雑な正規表現が含まれる可能性が高く、一部の有効な HTML では失敗します。 その方法は狂気です。

于 2012-08-02T08:30:39.133 に答える