使用 python 打印 xml 中的内容
printing contents in xml using python
我正在尝试使用下面的脚本将 xml 转换为 xslt。转换完美无缺。现在,我想将内容写入一个新的 xml 文件。当我尝试这样做时,我的 xml 文件中只有一行。但是,当我在控制台中打印它时,我得到多行输出。任何人都可以发现我做错了什么吗?
import lxml.etree as ET
dom = ET.parse("1.xml")
xslt = ET.parse("1.xsl")
transform = ET.XSLT(xslt)
newdom = transform(dom)
print(newdom)
newdom.write("output.xml")
您似乎已经将所有内容写入 "output.xml" 文件。随意 post 输出文件的片段,以及输入文件的片段。
如果唯一的问题是您希望它跨多行构建,而不是 one-liner,您可以将漂亮的打印标志设置为 true。
newdom.write("output.xml", pretty_print=True)
输出示例:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<tr>
<td>.</td>
<td>.</td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
这解决了我的问题
with open('output.xml', 'wb') as f:
f.write(newdom)
我正在尝试使用下面的脚本将 xml 转换为 xslt。转换完美无缺。现在,我想将内容写入一个新的 xml 文件。当我尝试这样做时,我的 xml 文件中只有一行。但是,当我在控制台中打印它时,我得到多行输出。任何人都可以发现我做错了什么吗?
import lxml.etree as ET
dom = ET.parse("1.xml")
xslt = ET.parse("1.xsl")
transform = ET.XSLT(xslt)
newdom = transform(dom)
print(newdom)
newdom.write("output.xml")
您似乎已经将所有内容写入 "output.xml" 文件。随意 post 输出文件的片段,以及输入文件的片段。
如果唯一的问题是您希望它跨多行构建,而不是 one-liner,您可以将漂亮的打印标志设置为 true。
newdom.write("output.xml", pretty_print=True)
输出示例:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<tr>
<td>.</td>
<td>.</td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
这解决了我的问题
with open('output.xml', 'wb') as f:
f.write(newdom)