Menu Home

xml

Java DOM设置XML缩进

TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); DOMSource source = new DOMSource(mDocument); transformer.setOutputProperty(OutputKeys.INDENT, “yes”); transformer.setOutputProperty(“{http://xml.apache.org/xslt}indent-amount”, “4”);//缩进宽度 transformer.setOutputProperty(OutputKeys.METHOD, “xml”); transformer.setOutputProperty(OutputKeys.ENCODING, “UTF-8”);

XPath去除XML空行

XPath xp = XPathFactory.newInstance().newXPath(); NodeList nl = null; try { nl = (NodeList) xp.evaluate(“//text()[normalize-space(.)=”]”, mDocument, XPathConstants.NODESET); } catch (XPathExpressionException e) { e.printStackTrace(); } for (int i = 0; i < nl.getLength(); ++i) { Node node = nl.item(i); node.getParentNode().removeChild(node); }

[转]XPath简介

结点类型 XPath中有七种结点类型:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或成为根节点)。 文档的根节点即是文档结点;对应属性有属性结点,元素有元素结点。 常用路径表达式 表达式 描述 nodename 选取此节点的所有子节点 / 从根节点选取 // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 . 选取当前节点 .. 选取当前节点的父节点 @ 选取属性 例如有文档: <?xml version=”1.0″ encoding=”ISO-8859-1″?> Harry Potter 29.99 Learning XML 39.95 则:

Java DOM 设置XML STANDALONE

public void save2file() { try { TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); DOMSource source = new DOMSource(mDocument); transformer.setOutputProperty(OutputKeys.INDENT, “yes”); transformer.setOutputProperty(OutputKeys.STANDALONE, “yes”); PrintWriter pw = new PrintWriter(new FileOutputStream(mFileName)); StreamResult result = new StreamResult(pw); transformer.transform(source, result); } catch (Exception e) { e.printStackTrace(); } } 输出: <?xml version=”1.0″ encoding=”utf-8″ standalone=”no”?> 这里的 […]

PHP: event-based XML parser

被解析的XML文件 book.xml Programming PHP Rasmus Lerdorf Kevin Tatroe Peter MacIntyre 1-5692-610-2 A great book! PHP Pocket Reference Rasmus Lerdorf 1-56592-769-9 It really does fit in your pocket Parser XML <html> <head>My Library</head> <body> <?php error_reporting(0); class BookList { const FIELD_TYPE_SINGLE = 1; const FIELD_TYPE_ARRAY = 2; const FIELD_TYPE_CONTAINER = 3; […]

Android使用Pull解析XML

Andoid解析XML除了传统的DOM和SAX外还提供了一种独有的Pull方式。Pull方式跟SAX非常类似,也使用事件驱动和流式解析,不需要像DOM那样读取整个XML文档。Pull跟SAX最大的区别是:控制解析事件的结束。Pull是由用户主动获取事件进行处理, 这就意味着你可以随时结束解析过程。而在SAX中,SAX解析器会把事件自动推入注册的事件处理器,用户无法控制这个过程。所以对于移动设备这种资源有限的设备来说,Pull方式可以缩短XML解析的时间,因为有时候我们可能只需要处理部分XML后主动结束解析,但这是SAX无法做到的。 一个例子 首先在asserts目录下建立需要解析的XML文件: <?xml version=”1.0″ encoding=”utf-8″?> <persons> <person id=”1″ > <name>lnmcc</name> <age>20</age> </person> <person id=”2″ > <name>wangsijie</name> <age>30</age> </person> <person id=”3″ > <name>Jack</name> <age>90</age> </person> </persons>

Android使用SAX解析XML

String xml = “<?xml version=\”1.0\”?>\n” + “<user>\n” + “<name>lnmcc</name>\n” + “<age>10</age>\n”; class XMLUser { String name; String age; public XMLUser() { name = “”; age = “”; } } private class UserXMLHandler extends DefaultHandler { static final int NONE = 0; static final int NAME = 1; static final int […]