Tag: saxparser

熟悉用Java解析XML文件

鉴于此XML文件: http://www.emp3world.com/to_download.php?id=33254 GET or POST a=1&b=2&c=3 我所追求的是从这个XML文件打印这样的东西: ID: 1 URL: http://www.emp3world.com/to_download.php?id=33254 Http method: GET or POST 目前这是我的原始处理程序代码: class MyHandler extends DefaultHandler { String str = “”; StringBuilder s = new StringBuilder(); public void startElement(String namespaceURI, String sName, String qName, Attributes atts) { if(qName.equals(“track”)) { s.append(“ID: “).append(atts.getValue(“clipid”)).append(“\n”); } if(qName.equals(“url”)) { s.append(“URL: “); } if(qName.equals(“http_method”)) { s.append(“Http […]

SAX Parser:从XML检索HTML标记

我有一个要解析的XML,如下所示 12941450184d2315fa63d6358242 Android testing status updated 标签包含HTML内容,其中包含我需要的数据。 我正在使用SAX Parser。 这就是我在做什么 private Timeline timeLine; //Object private String tempStr; public void characters(char[] ch, int start, int length) throws SAXException { tempStr = new String(ch, start, length); } public void endElement(String uri, String localName, String qName) throws SAXException { if (localName.equalsIgnoreCase(“content”)) { if (timeLine != null) { timeLine.setContent(tempStr); […]

如何将本地DTD文件的validation应用于java中的xml文件?

我需要解析一堆传入的XML文档,但它不包含DTD声明。 目前我正在使用SAX Parser解析xml文档但没有DTDvalidation。 现在我想应用DTDvalidation。 DTD由我自己创建。 如何使用自己创建的DTD(SAX解析器)validationXML文件? 我找到了一些使用Transformer的教程,但都是针对DOM Parser的。 如何使用SAX Parser解析XML文件并应用DTDvalidation。 任何帮助……

元素类型“META”必须由匹配的结束标记“”终止

当我尝试使用Java解析XML文件(在GAE服务器中)时,我有时会遇到以下错误: Parse: org.xml.sax.SAXParseException; lineNumber: 10; columnNumber: 3; The element type “META” must be terminated by the matching end-tag “”. 然而它并没有一直发生,有时它的工作正常。 该程序解析xml文件,我没有问题。 这是我试图解析的XML文件: http : //www.fulhamchronicle.co.uk/london-chelsea-fc/rss.xml 任何帮助将不胜感激。 谢谢。 更新: 谢谢你的回答。 我将我的代码更改为另一个解析器,以及该文件正在正确解析的好消息。 它现在为另一个饲料转移同样的问题,尽管完全不同的饲料,但它之前的工作完全不同。 谁能想到为什么会这样?

如果在SAX中设置setNamespaceAware(true),如何获取“xmlns:XXX”属性?

这是我的代码: path = wsdlPath; SAXParserFactory saxfac = SAXParserFactory.newInstance(); saxfac.setNamespaceAware(true); saxfac.setXIncludeAware(true); saxfac.setValidating(false); SAXParser saxParser = saxfac.newSAXParser(); saxParser.parse(wsdlPath, this); 在设置setNamespaceAware=true ,我无法在方法public void startElement(String uri, String localName, String qName, Attributes attributes)参数attributes中获取xmlns:XXX属性。 对于以下节点: 我只获取name和targetNamespace属性。 xmlns , xmlns:wsdl , xmlns:mime , xmlns:http和xmlns:tns在attributes参数中。 但他们无法访问。 有没有办法使用setNamespaceAware=true并获取节点的所有属性?

javax.xml.parsers.SAXParserFactory ClassCastException

当我通过maven运行测试时,我在本地机器上遇到以下exception(mvn test)。 ch.qos.logback.core.joran.event.SaxEventRecorder@195ed659 – Parser configuration error occured java.lang.ClassCastException: com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl cannot be cast to javax.xml.parsers.SAXParserFactory 在谷歌搜索后,我遇到了几个页面,描述了它背后的主要问题(在不同的类加载器中有几个SAXParserFactoryImpl)。 – > http://www.xinotes.org/notes/note/702/ 我的问题是,如何确定哪个库也提供了SAXParserFactoryImpl,以便我可以将其排除。 我正在使用Maven,IntelliJ和JDK 1.6.0_23。 问题出现在命令行以及从IntelliJ运行测试时。 但奇怪的是,在构建服务器上,这个问题不会发生。 更新1 刚想通过mvn clean后第一次运行mvn测试时,错误没有出现。 但是一旦我再次运行mvn test(没有干净,就会发生exception)(当我从IntelliJ运行它时)。 当我在cmd行上运行它时,几个mvn测试调用确实有效。

如何使用logback禁用accessExternalDTD和entityExpansionLimit警告

我正在使用groovy的logback并在解析xml时出现很多警告。 我知道JDK1.7_u45中导致此问题的错误。 Warning: org.apache.xerces.parsers.SAXParser: Property ‘http://javax.xml.XMLConstants/property/accessExternalDTD’ is not recognized. Warning: org.apache.xerces.parsers.SAXParser: Property ‘http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit’ is not recognized. 有没有办法关闭这个日志警告出现在DEBUG? 我尝试使用Filter编写filter,但没有帮助。

使用SAX解析器,如何解析具有相同名称标签但在不同元素中的xml文件?

是否可以在SAX解析器中提供路径表达式? 我有一个XML文件,它有几个相同的名称标签,但它们在不同的元素中。 有没有办法区分它们。 这是XML: 335823 Fairfax High School 4195653 Will Turner 4195654 Bruce Paltrow 4195655 Santosh Gowswami 335824 FallsChurch High School 4153 John Singer 4154 Shane Warne 4155 Eddie Diaz 我想根据学校的名称和ID来区分学生的姓名和身份certificate。 谢谢你的回复: 我创建了一个学生pojo,其中包含以下字段:school_id,school_name,student_id和student_name以及getter和setter方法。 这是我的临时解析器实现。 当我解析xml时,我需要将学校名称,id,学生姓名,id的值放在pojo中并返回它。 你能告诉我如何实现堆栈以区分。 这是我的解析器框架:: import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class HandleXML extends DefaultHandler { private student info; private boolean school_id […]

如何在startElement中使用SAX解析器从XML获取元素的值?

是否可以从startElement函数中的XML文件中获取元素的内容,该函数是SAX处理程序的覆盖函数? 以下是规格。 1)XML文件 Rakesh Mishra Bangalore John Davis Chennai Rajesh Sharma Pune 2) startElement函数 @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { …….code in here………. } 3)预期结果 element name : employee attribute name : id attribute value: 111 firstName : Rakesh lastName : Mishra location : Bangalore element name […]

什么是“推动方法”和“拉动方法”来解析?

在推送解析方法下,推送解析器在解析文档时生成同步事件,并且应用程序可以使用回调处理程序模型处理这些事件 这是关于SAX 2.0的Pro XML Development with Java一书中给出的文本。 至于StAX,这本书说: 在pull方法下,使用解析器在应用程序的控制下从XML文档中提取事件。 我想问一下,突出显示文本的含义是什么? 一个适合初学者的答案表示赞赏:)