hallo,
ich möchte in einem script dynamisch bestimmte sachen im betrieb auslesen.
die notwendigen parameter liegen in in einer xml datei vor
<caption>Konqueror</caption>
<...>xyz</...>
wie kriegt man es hin nur die parameter zwischen den tags auszulesen?!?
es ist nicht bekannt wie lang der text ist, oder wieviele wörter es sind.
mit grep isoliere ich die zeile, aber ich kriege die <caption> .... </caption>
nicht weg??
danke!
Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.
XML-Datei auslesen
Moderator: Moderatoren
Moin,
also wenn Du Java nimmst, haste einen XML-Parser dabei. Sowas kannst dir als DOM oder als SAX-Parser zusammen bauen.
Mit C++ und Qt haste nette Klassen dafür, bei C nimmst halt libxml.
Wenn Dich wirklich nur ein Zeile interessiert, würd ich aber auch ehr mit grep dran gehen und Rest halt von Hand parsen.
cu
Yogi
also wenn Du Java nimmst, haste einen XML-Parser dabei. Sowas kannst dir als DOM oder als SAX-Parser zusammen bauen.
Mit C++ und Qt haste nette Klassen dafür, bei C nimmst halt libxml.
Wenn Dich wirklich nur ein Zeile interessiert, würd ich aber auch ehr mit grep dran gehen und Rest halt von Hand parsen.
cu
Yogi
Sorry, hab mich unklar ausgedrückt!
Also ich muss es schon mit einem Shell-Script erledigen.
In dem Script brauche ich die Angaben die in der xml-Datei liegen.
Und wie gesagt ich die Zeile habe ich mit grep isoliert, jetzt geht es darum nur den Inhalt zwischen den Tags zu bekommen.
Bedinngung ist, dass nicht bekannt ist was und wieviel drin steht.
Beispiel:
Script xyz:
Ich weis leider nicht wie ich den Inhalt isolieren kann!
Mit awk{print $1} kriege ich leider nicht hin, wenn es mehrere wörter sind.
Einer eine Idee ?
Danke!
Also ich muss es schon mit einem Shell-Script erledigen.
In dem Script brauche ich die Angaben die in der xml-Datei liegen.
Und wie gesagt ich die Zeile habe ich mit grep isoliert, jetzt geht es darum nur den Inhalt zwischen den Tags zu bekommen.
Bedinngung ist, dass nicht bekannt ist was und wieviel drin steht.
Beispiel:
Script xyz:
Code: Alles auswählen
Pfad = /das was in xml-Datei zwischen den Tag <pfad> das hier </pfad> steht
Mit awk{print $1} kriege ich leider nicht hin, wenn es mehrere wörter sind.
Einer eine Idee ?
Danke!
-
- Newbie
- Beiträge: 3
- Registriert: 1. Mär 2004, 12:48
- Kontaktdaten:
Hallo,
Ich habe mittlerweile den Ihalt den ich haben wollte mit sed isoliert.
Nun ist der Inhalt zwischen den Tags teilweise ausführbares für die Shell.
Jetzt lese ich in einem Script zur Laufzeit den Inhalt der Datei aus....
Mit welchem Befehl kann ich das ausgelesene ausführen?!?
Beispiel:
Datei:
<dateiinhalt>echo $USER</dateiinhalt>
Script:
Hier soll dann nicht das "echo $USER" stehen, sondern das soll ausgeführt werden.
Kann einer einen Tip geben?
Gruß
Lösung für Einzeiler-Tags:
Ich arbeite nun mit den backsticks, und damit lässt sich der Inhalt ausführen.
Wenn es aber mehrzeiliger Inhalt ist ?!?
Wer hat eine Lösung/Lösungsansatz?!?
Gruß
Ich habe mittlerweile den Ihalt den ich haben wollte mit sed isoliert.
Code: Alles auswählen
sed -e "s/^\s*<caption>//" -e "s/<\/caption>\s*$//"
Jetzt lese ich in einem Script zur Laufzeit den Inhalt der Datei aus....
Mit welchem Befehl kann ich das ausgelesene ausführen?!?
Beispiel:
Datei:
<dateiinhalt>echo $USER</dateiinhalt>
Script:
Hier soll dann nicht das "echo $USER" stehen, sondern das soll ausgeführt werden.
Kann einer einen Tip geben?
Gruß
Lösung für Einzeiler-Tags:
Ich arbeite nun mit den backsticks, und damit lässt sich der Inhalt ausführen.
Code: Alles auswählen
`cat /Datei.txt | grep caption |sed -e "s/^\s*<caption>//" -e "s/<\/caption>\s*$//"`
Wer hat eine Lösung/Lösungsansatz?!?
Gruß