Dies ist ein XML-Dokument (der Satz und Leerzeichen vor der XML-Deklaration und XSLT-Verarbeitungsanweisung ist Teil des Eingangs):Fehler bei der Analyse von XML: Content nicht in Prolog erlaubt ist
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/3.0/style/exchange.xsl"?>
<mts:meta name="elapsed-time" value="18" />
<exchange-documents>
<exchange-document country="US" number="8049504">
....
....
....
</exchange-document>
</exchange-documents>
Ich bin Parsen der XML und Verwendung von XPath. In den meisten der XML-Dateien enthält die erste Zeile einen Text oder Leerzeichen (die oben xml beziehen)
Ohne diesen führenden Text, es parst erfolgreich, aber wenn irgendein Text erscheint erzeugt den folgenden Fehler:
--- exec-maven-plugin:1.2.1:exec (default-cli) @ XMLHandling ---
[Fatal Error] :1:1: Content is not allowed in prolog.
Wie kann ich das umgehen?
Der Code, den ich verwende:
public static void main(String[] args) throws ParseException {
String filePath = "D:/newxml.xml";
try {
FileInputStream file = new FileInputStream(new File(filePath));
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document xmlDocument = builder.parse(file);
XPath xPath = XPathFactory.newInstance().newXPath();
String pubOrPatentNumber = xPath.compile("//preference").evaluate(xmlDocument);
...
...
}
}
Ich kann den Text manuell entfernen und ausführen, aber ich brauche diese automatisch die Eingabe aufzuräumen in meinem Code zu lösen.
es höchstwahrscheinlich ist Byte Order Kennzeichen. Siehe mögliche Lösung hier: http://stackoverflow.com/questions/21891578/removing-bom-characters-using-java –
Auf der Code-Ebene könnten Sie die String-Bibliothek Funktionen verwenden, dh, suchen Sie nach dem ersten Vorkommen von "< " In der Eingabezeichenfolge, die das Dokument enthält, nehmen Sie den Teilstring, der hier beginnt, und parsen Sie ihn dann. Ich würde jedoch empfehlen, wegen der Wohlgeformtheitsfehler vorsichtig vorzugehen. Es ist eine bewährte Methode, sicherzustellen, dass XML-Dokumente immer gut formatiert sind, um solche Probleme zu vermeiden. Ich hoffe das hilft! –