У меня есть программа, которая нуждается в анализе XML, который содержит объекты символов. Сама программа не нуждается в разрешении, и список из них большой и изменится, поэтому я хочу избежать явной поддержки этих объектов, если смогу.Есть ли Java XML API, который может анализировать документ без разрешения объектов символов?
Вот простой пример:
<?xml version="1.0" encoding="UTF-8"?>
<xml>Hello there &something;</xml>
Есть XML API Java, который может анализировать документ успешно без разрешения (нестандартные) символьные сущности? В идеале это переводило бы их в особое событие или объект, который можно было бы обрабатывать специально, но я бы согласился на вариант, который бы молча их подавлял.
Ответ & Пример:
Skaffman дал мне ответ: использовать анализатор StAX с IS_REPLACING_ENTITY_REFERENCES
значение ЛОЖЬ.
Вот код, я взбитыми попробовать его:
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
inputFactory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, false);
XMLEventReader reader = inputFactory.createXMLEventReader(
new FileInputStream("your file here"));
while (reader.hasNext()) {
XMLEvent event = reader.nextEvent();
if (event.isEntityReference()) {
EntityReference ref = (EntityReference) event;
System.out.println("Entity Reference: " + ref.getName());
}
}
Для приведенного выше XML, он будет печатать «Entity Reference: something
».
вы можете дать XML-файл примера? – TofuBeer
Если у вас есть объекты, они должны быть определены или ваш документ недействителен. –