Ich versuche, eine Engine zu erstellen, die mehrere Verweise auf RSS-Feeds speichert, um sie selbst zu kompilieren, um dann eigene benutzerdefinierte Feeds zu erstellen. Ich speichere die Feeddaten in einer XML-Datei, lese sie dann in meiner Java-Engine und speichere eine URL als einfache Zeichenfolge.XML-Datei in Java mit einem Sonderzeichen lesen
Hier ist meine XML-Datei:
<Feeds>
<item>
<name>Example-Name</name>
<url>http://someurl.com/process.php?appuser=[USER]&auth=[KEY]</url>
<frequency>5</frequency>
</item>
</Feeds>
ich diese Datei mit diesem zu lesen:
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder;
dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlFile);
doc.getDocumentElement().normalize();
NodeList list = doc.getElementsByTagName("item");
for (int i = 0; i < list.getLength(); i++) {
Node n = list.item(i);
Element e = (Element) n;
String fn = e.getElementsByTagName("name").item(0).getTextContent();
String fu = e.getElementsByTagName("url").item(0).getTextContent();
int ff = Integer.parseInt(e.getElementsByTagName("frequency").item(0).getTextContent());
addFeed(fn, fu, ff);
}
} catch (ParserConfigurationException e1) {
System.out.println("Parse Error");
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SAXException e1) {
System.out.println("SAX Error");
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
System.out.println("IO Error");
// TODO Auto-generated catch block
e1.printStackTrace();
}
Und ich diesen Fehler:
[Fatal Error] Feeds.xml:15:75: The reference to entity "auth" must end with the ';' delimiter.
SAX Error
org.xml.sax.SAXParseException; systemId: file:/C:/Feed%20Engine/Feeds.xml; lineNumber: 15; columnNumber: 75; The reference to entity "auth" must end with the ';' delimiter.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at main.FeedFetcher.<init>(FeedFetcher.java:28)
at main.FEMain.main(FEMain.java:10)
Letztlich scheint es, wenn Beim Lesen der XML-Datei wird "auth" als Schlüsselwort ausgewählt. Gibt es eine Möglichkeit, ich es in der XML-Datei formatieren oder es anders analysieren, so dass ich den Fehler nicht erhalte?
Dank! Das hat definitiv den Trick gemacht. Ist mir nicht ganz bewusst, dass es versucht hat, den eigentlichen Inhalt zu analysieren. – Jonny