Ich bin ziemlich neu Regex, aber ich versuche es zu lernen. Ich bin nichts zu tun kompliziert ich einige XML haben:Erhalten Wert der Zeichenfolge zwischen zwei Tags
<root>
<friendlyName>Hello, I'm friendly</friendlyName>
<URL>http://localhost</URL>
</root>
Ich versuche, den Wert von friendly zu bekommen, aber es scheint nicht zu funktionieren. Ich habe einen Online-Regex-Tester von https://regex101.com/
verwendet, der mit dem übereinstimmt, was ich erwarte. Jedoch, wenn ich es in Java versuche, bekomme ich N/A
, N/A
zurück, was ich zurückgebe, wenn die Schnur nicht gefunden wurde.
Unten ist mein Code:
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";
}
ich den obigen Code erwartet Hello, I'm friendly
zurückzukehren, sondern ich N/A
bekommen.
Vielen Dank für Ihre Hilfe.
Verwenden Sie keine regulären Ausdrücke zum Parsen von XML. Verwenden Sie einen XML-Parser. Es spielt keine Rolle, wie einfach das XML ist. –
Was ist das '/ s', das am Ende der' Pattern'-Saite stehen soll? –
Ihr XML ist nicht gut gebildet '' endet mit '' –
Sanjeev