W moim pliku XML Mam kilka podmiotów, takich jak ’
Korzystanie JDOM do analizowania pliku XML z DTD zewnętrznego, który nie został zadeklarowany w pliku XML
Więc stworzyli tag DTD dla mojego dokumentu XML do zdefiniowania tych podmioty. Poniżej znajduje się kod Java używany do odczytu pliku XML.
SAXBuilder builder = new SAXBuilder();
URL url = new URL("http://127.0.0.1:8080/sample/subject.xml");
InputStream stream = url.openStream();
org.jdom.Document document = builder.build(stream);
Element root = document.getRootElement();
Element name = root.getChild("name");
result = name.getText();
System.err.println(result);
Jak mogę zmienić kod Java, aby pobrać DTD przez HTTP w celu umożliwienia analizowania mojego dokumentu XML być wolne od błędów?
Uproszczony przykład dokumentu xml.
<main>
<name>hello ‘ world ’ foo & bar </name>
</main>
Podmioty muszą być zadeklarowane, zanim będą mogły być wykorzystane. Jeśli używasz odwołań encji, które nie zostały zadeklarowane (w pliku lub z odwołaniem do zewnętrznego DTD), masz niepoprawny plik XML. –
Rzeczywiście. Moim problemem jest wstrzykiwanie ścieżki do mojego DTD do xml w czasie wykonywania, ponieważ dtd nie jest odwoływany wewnątrz dokumentu xml. DTD znajduje się na zdalnym serwerze dostępnym przez http. –