XML的编写
XML:
1. 起始:<section src="madonna.jpg"【属性】> 结束:</section> 空白:<section />。 任何的起始标签都必须有一个结束标签
2. 注释:"<!--
" and end with "-->
".
3. 区分大小写。
4. XML 的属性值须加引号。
5. 拥有特殊意义的字符如"<" 和 "&", 要用实体引用。 <message>if salary <
1000 then</message>
对照表:【<
represents "<"】【>
represents ">"】【&
represents "&"】【'
represents '】【"
represents " 】
6. XML名称可以为字母、数字以及其他的字符。不能包含空格,不能以xml,数字或者标点符号开头
7. 拥有正确语法的 XML 被称为“形式良好”(Well Formed)的 XML。遵守上述 XML 语法规则。
8. 通过 DTD 验证的 XML 是“合法”的 XML。合法的 XML 文档是“形式良好”的 XML 文档,同样遵守文档类型定义 (DTD) 的语法规则.
DTD 的作用是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构。 如<!DOCTYPE note SYSTEM "Note.dtd">
XML Schema是以XML语言为基础的,它用于可替代DTD。 一份XML schema文件描述了XML文档的结构。(http://baike.baidu.com/view/1032417.htm)
python实现:
用lxml:
1. from lxml import etree as ET
2. 根节点:root = ET.Element('background'【标签】)
3. 子节点:starttime = ET.SubElement(root【父节点】, 'starttime'【标签】)
4. 内容:hour.text = '00'
5. 转为String: ET.tostring(root【根节点】, pretty_print=True【排版】, xml_declaration=True,encoding="UTF-8")
6. 写入文本:
ee = ET.ElementTree(root)
tree.write('output.xml', pretty_print=True, xml_declaration=True,encoding="UTF-8")
root = ET.Element('background') starttime = ET.SubElement(root, 'starttime') hour = ET.SubElement(starttime, 'hour') hour.text = '00' minute = ET.SubElement(hour,'minute') minute.text = '00' second = ET.SubElement(starttime, 'second') second.text = '01' print ET.tostring(root, pretty_print=True, xml_declaration=True,encoding="UTF-8") # write to file: tree = ET.ElementTree(root) tree.write('output.xml', pretty_print=True, xml_declaration=True,encoding="UTF-8")
用XMLWriter:
from elementtree.SimpleXMLWriter import XMLWriter import sys w=XMLWriter(sys.stdout) text=w.start("root") w.start("head") w.element("title","HAHAHAHAHA") w.end() w.start("body") w.start("inbody") w.element("b","bbbb") w.end("inbody") w.end("body") w.close(text)
用minidom:
from xml.dom import minidom import sys doc=minidom.Document() root=doc.createElement("root") doc.appendChild(root) asset=doc.createElement("asset") root.appendChild(asset) assettext=doc.createTextNode("hahahahaha") asset.appendChild(assettext) text=doc.toprettyxml(indent='') print text f=('xml.xml','w') #doc.writexml(f, encoding="utf-8") #f.close()