Это документ XML (предложение и пробелы до инструкции по обработке декларации XML и XSLT являются частью входа):Ошибка синтаксического анализа XML: Содержимое не допускается в прологе
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>
Я разборе XML и использование XPath. В большинстве файлов XML, то первая строка содержит некоторый текст или пробелы (см вышеуказанную XML)
Без этого ведущего текста, он разбирает успешно, но если появляется какой-либо текст, он выдает ошибку ниже:
--- exec-maven-plugin:1.2.1:exec (default-cli) @ XMLHandling ---
[Fatal Error] :1:1: Content is not allowed in prolog.
Как я могу обойти это?
код, который я использую:
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);
...
...
}
}
можно вручную удалить текст и выполнить, но мне нужно, чтобы решить эту проблему в своем коде, чтобы автоматически очистить вход.
Скорее всего, это Байт Отметка. См. Возможное решение здесь: http://stackoverflow.com/questions/21891578/removing-bom-characters-using-java –
На уровне кода вы можете использовать функции библиотеки строк, т. Е. Искать первое появление «< ?» в строке ввода, содержащей документ, затем возьмите подстроку, начинающуюся здесь, а затем проанализируем ее. Однако я бы посоветовал действовать осторожно из-за ошибок корректности. Это лучшая практика, чтобы убедиться, что документы XML всегда хорошо сформированы, чтобы избежать таких проблем. Надеюсь, это поможет! –