元素树中单个标签的多行值换行
我在我的Python脚本中使用了Element Tree来生成带有我自己标签的XML文件。
我需要在XML文件中为一个标签设置多行内容。例如,
Prj_Name = "GetComp"
Prj_Desc = """ Level : 3
Author : Jhon
Date : 12 May 13
Details : .......
..................
.................. """
top = Element('ProjectInfo')
child = SubElement(top, 'Name')
child.text = Prj_Name
child = SubElement(top, 'Description')
child.text = Prj_Desc
indent(top) # this function will format the XML tags
tree = ET.ElementTree(top)
tree.write("MyXML.xml")
在这个XML中,'Description'标签包含了多行字符串。如果我们用Notepad++打开这个文件,就能看到'描述'标签的内容是这样的,
<ProjectInfo>
<Name>CompInfo</Name>
<Description> Level : 3
Author : Jhon
Date : 12 May 13
Details : .......
..................
.................. </Description>
</ProjectInfo>
但是如果我们用IE(互联网浏览器)打开这个XML文件,'Description'标签中的多行字符串就会显示成一行,像这样,
<?xml version="1.0"?>
-<ProjectInfo>
<Name>GetComp</Name>
<Description> Level : 3 Author : Jhon Date : 12 May 13 Details : ....... .................. .................. </Description>
</ProjectInfo>
那么我们该如何在Element Tree中为包含多行内容的元素添加换行呢?
1 个回答
2
简单来说,XML中的空格、换行、制表符这些东西不应该是你用来美化内容的工具。XML的主要作用是传递信息,它应该能够随时被重新格式化,而不会失去它的意义。
不过,你可能还是想把换行符用
这种方式编码,这样无论你在记事本里怎么设置,它们都能正确传输。