XML:

任何的起始标签都必须有一个结束标签

  2. 注释:"<!--" and end with "-->". 

  3. 区分大小写。

XML 的属性值须加引号。

  5. 拥有特殊意义的字符如"<" 和 "&", 要用实体引用。 <message>if salary &lt; 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()