xml解析相关总结
发布时间:2020-12-16 05:12:15 所属栏目:百科 来源:网络整理
导读:xml解析 //获得一个XML文件的解析器DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();//解析XML文件生成DOM文档的接口类,以便访问DOM。DocumentBuilder builder = factory.newDocumentBuilder();document = builder.parse( new File
xml解析//获得一个XML文件的解析器 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //解析XML文件生成DOM文档的接口类,以便访问DOM。 DocumentBuilder builder = factory.newDocumentBuilder(); document = builder.parse( new File(FileName) );遍历DOM文档 //获得Root元素 Element root = document.getDocumentElement(); //获得Root元素的子节点列表 nodelist = root.getChildNodes();或者通过标签来获得element NodeList body = root.getElementsByTagName("body");假设body下有很多子条目div,则可以一个个取出来单独解析。 <html> <head> </head> <body> <div name="1"> <p id="path">TEMP</p> <p id ="title">....</p> <p id="summary">...</p> <a href="http://....">下载</a> </div> <div name="9"> <p id="name">...</p> <p id='version'>100</p> <details> <summary>...</summary> <img src="http://....png" title="xx" /> </details> <a href="http://..."title="url">下载</a> </div> </body></html> NodeList divs = ((Element) (body.item(0))).getElementsByTagName("div"); Element div = (Element) divs.item(i);然后通过div.getAttribute("name")来获取div的属性,通过NodeList child = div.getElementsByTagName("p");来获取div的子条目<p>的element,并解析。 int len = child.getLength(); for (int i = 0; i < len; i++) { Element p = (Element) child.item(i); String idVal = p.getAttribute("id"); if (idVal.equals("name")) name = p.getTextContent(); if (idVal.equals("version")) version = p.getTextContent(); ...... } 将DOM文档转化成XML文件TransformerFactory tfactory = TransformerFactory.newInstance(); Transformer transformer = tfactory.newTransformer(); // 将DOM对象转化为DOMSource类对象,该对象表现为转化成别的表达形式的信息容器。 DOMSource source = new DOMSource(document); // 获得一个StreamResult类对象,该对象是DOM文档转化成的其他形式的文档的容器,可以是XML文件,文本文件,HTML文件。这里为一个XML文件。 StreamResult result = new StreamResult(new File(“text.xml”)); // 调用API,将DOM文档转化成XML文件。 transformer.transform(source,result);需要注意的是,document哪怕是整个xml文档的一部分,例如上例中的某个div,转换得到的仍是整个xml文档。这一块没有继续去看,不知道有没别的解决办法。 Document转化成StringDOMSource source = new DOMSource(doc); StringWriter writer = new StringWriter(); Result result = new StreamResult(writer); Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.transform(source,result); String xml = writer.getBuffer().toString(); 注:上述方法会返回整个xml的String。
|
相关内容
- c# – 比较7个单词,看看其中5个是否相等.怎么样?
- 在oracle中的plsql – PLS-00323错误
- c# – 对于2D数组,Array.Copy()比for循环更快吗?
- 向《Swift与Cocoa框架开发》作者Paris Buttfield-Addison提
- 在XML成为标准之前,给出了所有的缺点,使得XML如此受欢迎?
- 如何使用c#按文件名中的日期对文件进行排序?
- flex 中 bindable的意义
- ruby-on-rails – 为Phusion Passenger应用程序设置环境变量
- actionscript-3 – ADT适用于ipa-test-interpreter但不适用
- ruby-on-rails – 如何使f.select rails选择