Tag: xml parsing

JAXB解组XML类强制转换exception

我正在使用这个JAXB Collection Generics解组我的字符串xml并返回List类型。 这是我使用的方法。 public static List unmarshalCollection(Class cl, String s) throws JAXBException { return unmarshalCollection(cl, new StringReader(s)); } public static List unmarshalCollection(Class cl, Reader r) throws JAXBException { return unmarshalCollection(cl, new StreamSource(r)); } private static List unmarshalCollection(Class cl, Source s) throws JAXBException { JAXBContext ctx = JAXBContext.newInstance(JAXBCollection.class, cl); Unmarshaller u = ctx.createUnmarshaller(); JAXBCollection collection […]

从互联网解析xml(yr.no)

我没有经验的xml解析所以也许我写的一些东西看起来很愚蠢,也许我的一些术语不太正确..请原谅。 我开发了一个Android应用程序,需要解析来自YR.no的天气数据。 该组织提供了一种api,其方法可以提供xml格式的某些数据。 比方说,我想从这个http://api.yr.no/weatherapi/seaapproachforecast/1.0/?location=stad解析xml数据 我开发了一个代码,可以进行一些xml解析,它可以在http://www.w3schools.com/xml/simple.xml中作为测试工作。 定义在BaseFeedParser类中获取内容的主要代码行是: RootElement root2 = new RootElement(“breakfast_menu”); Element food = root2.getChild(“food”); Element name = food.getChild(“name”); food.setEndElementListener(new EndElementListener() { public void end() { messages.add(currentMessage.copy()); } }); food.getChild(“name”).setEndTextElementListener(new EndTextElementListener() { public void end(String body) { currentMessage.setTitle(body); } }); try { Xml.parse(this.getInputStream(), Xml.Encoding.ISO_8859_1, root2.getContentHandler()); } catch (Exception e) { throw new RuntimeException(e); } return […]

复制同一输出xml文件-java中的节点

这是我的示例文件“example.xml” 7.0 FIN ED XXX 2015-05-16 90 KIA 2.这是我解析文件“example.xml”的java代码: public static void main(String argv[]) { try { Properties prop = System.getProperties(); File file = new File(“E:/workspace/example.xml”); DocumentBuilderFactory dbildfactory =DocumentBuilderFactory.newInstance(); DocumentBuilder dbild = dbildfactory.newDocumentBuilder(); Document doc = dbild.parse(file); doc.getDocumentElement().normalize(); NodeList nodeL = doc.getElementsByTagName(“ALL”); for (int s = 0; s < nodeL.getLength(); s++) { Node nodde = […]

更新XML字符串

从给定的XML String,我必须更新结束日期值。 即使我在updateNodeValue()方法中更新xml,我的最终输出xml与输入xml相同。 有人能告诉我这段代码中的错误是什么 import java.io.StringReader; import java.io.StringWriter; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; public class MyClass{ static String strXml = “2013-12-022014-01-31”; public static void main(String[] args) throws Exception { System.out.println(strXml); Document doc = StringToDocument(strXml); updateNodeValue(doc); String […]

如何在JSP中从这个XML中提取值

我有一个XML如下(有100行): 任何人都可以告诉我如何循环它并从JSP中的上述XML文件中提取“counter”和“cash_filename”等属性。 到目前为止,我有以下代码: <% DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse("http://localhost:8080/data.xml"); NodeList nl = doc.getElementsByTagName("cellimage"); for (int i = 0; i

如何使用java从xml文件中提取细节?

我有以下类型的XML文件, 224589801 NC_000010 Homo sapiens chromosome 10, GRCh37.p10 Primary Assembly gi|224589801|gnl|ASM:GCF_000001305|10|ref|NC_000010.10||gpp|GPC_000000034.1||gnl|NCBI_GENOMES|10[224589801] 224589801 2002/08/29 2012/10/30 544 9606 135534747 live 如何从node =“Item”中提取细节,具体取决于它的名称值? 使用标准的java dom xml或者更好地使用任何其他xml解析器库是为了这个目的吗?

使用java删除XML中的重复项的小问题

这是示例XML: 23 23 这是我写的java代码,它找到重复的元素(包括它们的属性)并删除它们: import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpression; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class RecursiveNodeCheck { /** * @param args */ public static […]

XML Parser Android

我有一个huuge HTML文件,像这样: Need this Text Need this Text too (1) Need this Text too (2) </div 如何在这个html文件中“导航”以获取我想要的文本? html->body->div#wraper->div#col x8 black-> div#side-vox last10-> ul#sidebarlist -> li#first 对于这项工作,什么是更好的DOM或SAX? (我不是母语为英语的人)

如何在VTD Xpath查找上输入名称空间前缀

我正在构建基于VTD的XML解析引擎,以便处理来自多个输入系统的文件。 我目前正在尝试从带有命名空间前缀的标签中获取值: CLIENT NAME 1 并查询以下Xpath: //client/age/text() //client/name/text() 如何设置VTD AutoPilot忽略名称空间前缀? 注意 :我无法更改xpath,因为我已经使用JDK的默认xpath引擎实现了这个引擎。 更新 :请参阅下面我用来测试的代码。 文件类似于顶部的文件: @Test public void doFile() throws Exception { byte[] xmlData = FileUtils.loadFile(“namespace-test.xml”); VTDGen gen = new VTDGen(); gen.setDoc(xmlData); gen.parse(false); VTDNav vtd = gen.getNav(); AutoPilot pilot = new AutoPilot(vtd); pilot.selectXPath(“//clients”); int re = pilot.evalXPath(); System.out.println(re); if (re >= 0) { System.out.println(vtd.toString(re)); } […]

使用SAX获取DOCTYPE详细信息(JDK 7)

我正在使用JDK7附带的SAX解析器。 我试图抓住DOCTYPE声明,但是DefaultHandler中的所有方法似乎都没有被触发。 我错过了什么? import java.io.StringReader; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class Problem { public static void main(String[] args) throws Exception { String xml = “”; SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser(); InputSource in = new InputSource(new StringReader(xml)); saxParser.parse(in, new DefaultHandler() { @Override public void startElement(String uri, String localName, String […]