私はかなり新しい正規表現ですが、私はそれを学びたいと考えています。私はいくつかのXMLを持つ複雑な何もしていないよ:2つのタグ間の文字列の値を取得
<root>
<friendlyName>Hello, I'm friendly</friendlyName>
<URL>http://localhost</URL>
</root>
私はフレンドリーネームの値を取得しようとしていますが、それが動作するように表示されません。私はhttps://regex101.com/
のオンライン正規表現テスターを使用しましたが、これは私が期待しているものと一致するようです。しかし、Javaで試してみると、N/A
、N/A
という文字列が見つからない場合に返されます。
public String getXMLTagValue(String tagName)
{
Pattern pattern = Pattern.compile("<" + tagName + ">(.*?)</" + tagName + ">/s");
Matcher matcher = pattern.matcher(xmlString);
while (matcher.find())
{
return matcher.group();
}
return "N/A";
}
私はHello, I'm friendly
を返すために、上記のコードを期待していますが代わりに、私はN/A
を得る:
以下は私のコードです。
ご協力いただきありがとうございます。
正規表現を使用してXMLを解析しないでください。 XMLパーサを使用します。 XMLがどれほどシンプルであるかは関係ありません。 –
'/ s'はあなたの' Pattern'文字列の最後にありますか? –
あなたのXMLは整形されていない ''は '' –
Sanjeev