我有一个问题读取与DTD声明中(外部声明解决)一个XML文件。 我使用SAX方法(javax.xml.parsers.SAXParser中)。 当没有DTD定义解析看起来像例如StartEement字符,起始元素的字符,结束元素,人物......因此,有开始或结束元素,这就是我怎么需要它后马上打电话字符的方法。 当DTD是文件解析架构更改,例如起始元素,起始元素,起始元素的字符 - EndEement-EndEement-EndEement。 我需要每一个元素之后的字符的方法。 所以,我问的是有没有什么办法来防止解析架构的变化?
我的代码:
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(false);
SAXParser parser = factory.newSAXParser();
XMLReader reader = parser.getXMLReader();
reader.setFeature("http://xml.org/sax/features/validation", false);
reader.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
reader.setFeature("http://xml.org/sax/features/external-general-entities", false);
reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
reader.setFeature("http://xml.org/sax/features/use-entity-resolver2", false);
reader.setFeature("http://apache.org/xml/features/validation/unparsed-entity-checking", false);
reader.setFeature("http://xml.org/sax/features/resolve-dtd-uris", false);
reader.setFeature("http://apache.org/xml/features/validation/dynamic", false);
reader.setFeature("http://apache.org/xml/features/validation/schema/augment-psvi", false);
reader.parse(input);
还有就是我试图解析XML文件的链接 (它在我的Dropbox的链接)。