- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个脚本,它使用 xml.etree.ElementTree 来解析 XML 文件,并且应该向元素添加一个子元素。我有两种方法,这两种方法在技术上都有效,但当我使用 ET.dump(root) 转储整个 xml 时,两种方法都会导致格式/空白困惑
我使用 fromstring 的第一种方法
import xml.etree.ElementTree as ET
tree = ET.parse('test.xml')
root = tree.getroot()
#snip
newgroup='''
<group>
<uuid>%s</uuid>
<id>%s</id>
<name>%s</name>
<desc>%s</desc>
</group>
''' % (g_uuid, g_id, g_name, g_desc)
access = root.find('access')
access.append(ET.fromstring(newgroup))
这会导致该组被添加为子组,但在组的结束标记之后没有换行符,并且第一个标记只有 1 个选项卡,无论我在 newgroup 字符串中放入多少个制表符。
<group>
<uuid>f60e6b30-eec9-11e6-a5d4-2c768aabceca</uuid>
<id>2</id>
<name>newgroup</name>
<desc>Testing groups</desc>
</group></access>
我想知道为什么它正确地为组的子项获取空格,但却搞乱了组标签本身的格式。
第二种方法是用它的子节点构建该组的 etree
newgroup = ET.Element('group')
ET.SubElement(newgroup, 'uuid').text = '%s' % g_uuid
ET.SubElement(newgroup, 'id').text = '%s' % g_id
ET.SubElement(newgroup, 'name').text = '%s' % g_name
ET.SubElement(newgroup, 'desc').text = '%s' % g_desc
access = root.find('access')
access.append(newgroup)
但是整个 newgroup-tree 出现在一行中,根本没有换行符和制表符:
<group><uuid>f60e6b30-eec9-11e6-a5d4-2c768aabceca</uuid><id>2</id><name>newgroup</name><desc>Testing groups</desc></group></access>
我是 python 新手,不太知道如何格式化字符串。那么我怎样才能美化这个东西,以便我从脚本中获得格式良好的 XML 呢?
最佳答案
使用任何方法创建 XML,无需担心格式,然后只需在根元素上使用通用缩进功能,如下所示:
def indent(elem, level=0, hor='\t', ver='\n'):
i = ver + level * hor
if len(elem):
if not elem.text or not elem.text.strip():
elem.text = i + hor
if not elem.tail or not elem.tail.strip():
elem.tail = i
for elem in elem:
indent(elem, level + 1, hor, ver)
if not elem.tail or not elem.tail.strip():
elem.tail = i
else:
if level and (not elem.tail or not elem.tail.strip()):
elem.tail = i
另一个解决方案是使用 lxml
第三方库,当使用关键字参数 pretty_print=True
写入文件时,该库已经具有类似的效果。顺便说一句,这几乎是不可配置的方法。因此,使用自定义缩进函数,您可以配置您想要在此示例中学习的任何行为。
关于Python xml.etree 格式化美化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42138024/
我在我们的项目中使用 PageDpwn markdown 来轻松输入内容和代码片段。我已经打印出 markdown 并将其转换为 HTML。我使用 jQuery $.ajax 从数据库中检索 mark
AWK的输出,主要还是靠 print 和 printf 两个函数,而这两个函数,我们前面已经用过很多次了。 print 和 printf 主要从 C 语言 借鉴而来,而且继承了 C 语言 的输出格式
我有一个 Jinja2 template我想使用,但不能与美化代码结合使用。 This question之前有人问过这个问题,但在将近 2 年的时间里没有答案,所以现在也许有答案了。 {% f
我听说过美化/美化 JSON 的网站。它究竟意味着什么? 最佳答案 这意味着它的一个更易于阅读的版本。例如。以下是有效的 json,但可读性差: {"outcome" : "success", "re
我们有一个 Win32 应用程序,它在工具栏等上显示工具提示。工具提示是带有合并文本的非常基本的矩形。我们希望能够美化这些,例如,具有圆角或渐变填充背景。我无法在 Win32 API 集中找到任何控制
我有一个 JSON 对象,当我提醒它时,我得到这个: 我想得到这个: function getNameById(id){ return usersArray.find(item => item
在我的 C#/ASP.NET 项目中,我有一个具有特定行为类别的对象。每个行为类别在物理上都依赖于一个根对象,但为了使代码更好地阅读,我想清楚地区分这些类别。我认为看看我的实现与其他人为解决相同问题而
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
假设我有一个 System.Xml.XmlDocument谁的InnerXml是: Stan LaurelOliver Hardy 我想这样格式化它,添加换行符和空格:
我目前正在实现 ace作为多种编程语言的编辑器。我真的很想实现一个美化功能,目前我使用这种方法: var beautify = ace.require("ace/ext/beautify"); //
我需要在 html 页面上美化我的 json 输出,我正在使用以下代码执行此操作: $.each($('td.pretty_json'), function(key, value){
有没有办法让 clang 输出插入回车符?当使用详细选项进行编译时,我只会得到这些巨大的不可读的编译器标志和路径转储。 最佳答案 使用 popen开始你的clang session 。创建一个新命令行
我有一个关于 Java 的 XML API 的简单问题,我希望也有一个简单的答案: 假设处理后我有以下 XML 输出: some content
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。 关闭
奇怪的是,我试图以非常格式化的方式打印我的 JSON,但是我的 JSON 不断返回 \并且打印不漂亮。 我有这个适用于 plnkr 但不适用于我的实际应用程序的解决方案。下图是打印出来的 JSON,类
我正在尝试使用此代码来美化从另一个服务检索的 JSON 对象,并将其返回到静态页面(必须如此)。 JavaScript 函数可以工作,但我在处理字符串化对象时遇到问题。 它可以很好地编码,例如在 ht
所以,我的个人网站正在我编写的自定义博客引擎上运行,我对此非常满意。但是,它使用母版页,这意味着 ASP.NET 在所有 id 前面添加(没有充分理由)“ct100”...例如: H
我有一些 HTML 输出位于我想美化/美化的变量中,但努力从我的网络搜索结果中理解。 我发现的大多数选项,例如 PerlTidy(甚至不确定它是否是正确的选项)似乎都假设 HTML 在一个文件中,但在
google-code-prettify通过“美化”转义字符本身而不是转义序列来处理代码块中的 HTML 转义。例如: 原始 HTML ... > ... 被美化成: > 有明显
我有一个 html 文档,我想从中提取表格并美化表格。到目前为止我所拥有的是: with open('html.txt','r') as file1: read_f=file1.read()
我是一名优秀的程序员,十分优秀!