Gut - die Programmiersprache meiner Wahl währe Java.
Code:
import java.io.FileReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
public class a {
public static void main(String[] args) {
try {
FileReader freader = new FileReader("wochenzeitplan.xml");
DocumentBuilderFactory docfactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder docbuilder = docfactory.newDocumentBuilder();
Document docroot = docbuilder.parse(new InputSource(freader));
XPath xpath = XPathFactory.newInstance().newXPath();
String result = (String) xpath.evaluate("//title", docroot,
XPathConstants.STRING);
System.out.println(result);
} catch (Exception eve) {
}
}
}
XML-Datei:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="pmt.css"?>
<!DOCTYPE format SYSTEM "wochenzeitplan.dtd" >
<!-- Rahmen für die Teamarbeit -->
<!-- Punkte die durch das Formular abgedeckt werden sollen:
Keine Person im Team ohne aktuelle Aufgabe.
Definieren sie kurze, regelmäßige Treffen zur Koordination
Definieren sie Zeiten zur thematischen Orientierung und zum zielorientierten Kompetenzaufbau -->
<format id="Wochenzeitplan">
<tuesday>
<date>2008-06-17</date>
<task>
<title>Einlesen in CSS</title>
<timeperiod>1h</timeperiod>
<person>
<name>Max Marder</name>
</person>
</task>
</tuesday>
<monday>
<date>2008-06-16</date>
<task>
<title>Einlesen in DTD</title>
<timeperiod>1h</timeperiod>
<person>
<name>Fritz Fuchs</name>
</person>
</task>
</monday>
<wednesday>
<date>2008-06-18</date>
<task>
<title>Überarbeiten des XML Dokuments</title>
<timeperiod>1,5h</timeperiod>
<person>
<name>Max Marder</name>
</person>
</task>
<task>
<title>Erstellen der DTD</title>
<timeperiod>0,5h</timeperiod>
<person>
<name>Max Marder</name>
</person>
</task>
</wednesday>
<thursday>
<date>2008-06-19</date>
<task>
<title>XML in HTML wandeln und CSS erstellen</title>
<timeperiod>1,5h</timeperiod>
<person>
<name>Max Marder</name>
</person>
</task>
</thursday>
<friday>
<date>2008-06-20</date>
<task>
<title>Neue Aufgabe bearbeiten</title>
<person>
<name></name>
</person>
</task>
</friday>
<originator>
<name>xx xx</name>
</originator>
<date>2008-06.17</date>
</format> Immerhin das habe ich schon hinbekommen! Doch das Java-Programm oben gibt mir immer nur den ersten Eintrag den es findet zurück. Ich dachte mit dem Doppelslash werden alle Elemente mit diesem Namen selektiert, oder habe ich die Spezifikation falsch verstanden?