Werte mit regulären Ausdrücken aus String extrahieren

Hi,
was meinst du, mit "den ganzen String in ein Array gelesen bekomme"?
Außerdem ist in Wikipedia zu lesen, dass JAXP DOM und SAX beinhaltet. Und mit diesen beiden Bibliotheken kann man bequem Attribute auslesen:
Java:
String value = new SAXBuilder().build(new InputSource("main/Pfad/zur/XML-Datei.xml")).getRootElement().getAttributeValue("attrib");

Ciao
DosCoder


Ja, nur habe ich den Teil den ich zerlegen will ja in einem String und nicht in einer Datei. Auf die restlichen Elemente aus der Datei kann ich direkt zugreifen.
 
Hallo,

hier ne weitere Möglichkeit,...
Java:
package de.tutorials;

public class RegexGroupReferenceExample {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String xml = "<product kodierung=\"A\" nummer=\"100001\" produktmerkmal=\"A\" speicherdatum=\"2004-04-30\" speicheruhrzeit=\"00:00:00\"> </product>";
        
        System.out.println(extract("nummer",xml));
        System.out.println(extract("produktmerkmal",xml));
        System.out.println(extract("speicherdatum",xml));
    }

    private static String extract(String attributeName, String xml) {
        return xml.replaceAll(".*" + attributeName + "\\s*=\"([^\"]*)\".*", "$1");
    }
}

Ausgabe:
Code:
100001
A
2004-04-30

Gruß Tom
 
Hallo,

euch allen vielen Dank für die Unterstützung.

Tom, Deine Lösung sieht auf den ersten Blick genauso aus wie ich es mir vorgestellt habe.

Hatte es am Ende so realisiert:
Code:
public static String getValue(String attribute, String document){
		String value = "";
		String regex = attribute + "=\".*?\"";
		java.util.regex.Pattern pattern = java.util.regex.Pattern.compile(regex);
		Matcher m1 = pattern.matcher(document);
		if (m1.find()) {
			value = m1.group();
			int start;
			int end;
			start = value.indexOf("\"") + 1;
			end = value.length() - 1;
			return value.substring(start, end);
		} else
			return "";
}
Allerdings auch etwas umständlich.

Grüße
dany
 

Neue Beiträge

Zurück