XML:
任何的起始标签都必须有一个结束标签
2. 注释:"<!--
" and end with "-->
".
3. 区分大小写。
XML 的属性值须加引号。
5. 拥有特殊意义的字符如"<" 和 "&", 要用实体引用。 <message>if salary <
1000 then</message>
对照表:
【< represents "<"】【> represents ">"】【& represents "&"】【' represents '】【" represents " 】
字母、数字以及其他的字符。不能包含空格,不能以xml,数字或者标点符号开头
7. 拥有正确语法的 XML 被称为“形式良好”(Well Formed)的 XML。遵守上述 XML 语法规则。
合法的 XML 文档是“形式良好”的 XML 文档,同样遵守文档类型定义 (DTD) 的语法规则.
DTD 的作用是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构。
XML Schema是以XML语言为基础的,它用于可替代DTD。
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")
View Code
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:
View Code
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:
View Code
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()