看看Python SAX documentation我只看到使用SAX读取XML。但我想写它。
不久前我就知道to do that in Java是怎么写的:
public void renderXML(OutputStream out) {
PrintWriter pw = new PrintWriter(out);
StreamResult streamResult = new StreamResult(pw);
SAXTransformerFactory tf = (SAXTransformerFactory) TransformerFactory.newInstance();
TransformerHandler hd = tf.newTransformerHandler();
Transformer serializer = hd.getTransformer();
serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
serializer.setOutputProperty(OutputKeys.METHOD,"xml");
serializer.setOutputProperty(OutputKeys.INDENT, "yes"); // So it looks pretty in VI
hd.setResult(streamResult);
hd.startDocument();
AttributesImpl atts = new AttributesImpl();
atts.addAttribute("", "", "someattribute", "CDATA", "test");
atts.addAttribute("", "", "moreattributes", "CDATA", "test2");
hd.startElement("", "", "MyTag", atts);
String curTitle = "Something inside a tag";
hd.characters(curTitle.toCharArray(), 0, curTitle.length());
hd.endElement("", "", "MyTag");
hd.endDocument();
}
Python的等价物是什么?我使用ElementTree检查了一个answer on SO,但这是做事情的DOM方式(对于真正大的输出来说,这是个问题)。Another question没有应答。或者:用Python编写XML更好的方法是什么?在
https://docs.python.org/3/library/xml.sax.handler.html和一个OSIS XML中圣经的例子,看看this script。在
我不知道Python中有没有类似SAX的直接方法;但是我为此编写了一个库,可能对您有用。它提供了打开和关闭元素、创建pis、注释、doctype等的方法。它有相当多的高级特性,比如跟踪哪些元素和继承的xml:lang值(如果有)正在运行,正在为您执行所有转义(甚至为属性中的uri进行%xx转义),像“closeToElement(type)”等等,我发现从Python生成WF-XML变得更加容易。如果感兴趣,请到http://www.derose.net/steve/utilities/PY/XmlOutput.py。在
相关问题 更多 >
编程相关推荐