我有一个xml我正在解析,进行一些更改并保存到一个新文件.它有<?xml version="1.0" encoding="utf-8" standalone="yes"?>我想保留的声明.当我保存我的新文件时,我失去了standalone="yes"一点.我该如何保管?这是我的代码:
templateXml = """<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<package>
<provider>Some Data</provider>
<studio_display_name>Some Other Data</studio_display_name>
</package>"""
from lxml import etree
tree = etree.fromstring(templateXml)
xmlFileOut = '/Users/User1/Desktop/Python/Done.xml'
with open(xmlFileOut, "w") as f:
f.write(etree.tostring(tree, pretty_print = True, xml_declaration = True, encoding='UTF-8'))
Run Code Online (Sandbox Code Playgroud) 我尝试使用lxml在Python中解析XML文件,如下所示:
objectify.parse(xmlPath, parserWithSchema)
Run Code Online (Sandbox Code Playgroud)
但XML文件可能包含奇怪的地方的评论:
<root>
<text>Sam<!--comment-->ple text</text>
<!--comment-->
<float>1.2<!--comment-->3456</float>
</root>
Run Code Online (Sandbox Code Playgroud)
这是一种在解析之前不加载或删除注释的方法吗?
我不确定我是否完全理解以下正则表达式搜索的内容:
>>> import re
>>> template = re.compile("(\w+)+\.")
>>> target = "a" * 30
>>> template.search(target)
Run Code Online (Sandbox Code Playgroud)
search()呼叫需要几分钟才能完成,CPU使用率达到100%.对于2.7.5和3.3.3 Python版本,该行为都是可重现的.
有趣的事实是,如果字符串的长度小于20-25个字符,那么很快就会search()返回.
怎么了?
有一个已知的"模式"来获取捕获的组值,如果不匹配则有一个空字符串:
match = re.search('regex', 'text')
if match:
value = match.group(1)
else:
value = ""
Run Code Online (Sandbox Code Playgroud)
要么:
match = re.search('regex', 'text')
value = match.group(1) if match else ''
Run Code Online (Sandbox Code Playgroud)
有一种简单而pythonic的方法可以在一行中完成吗?
换句话说,如果没有找到捕获组,我可以提供默认值吗?
例如,我需要_从key=字符串后面的文本中提取所有字母数字字符(和):
>>> import re
>>> PATTERN = re.compile('key=(\w+)')
>>> def find_text(text):
... match = PATTERN.search(text)
... return match.group(1) if match else ''
...
>>> find_text('foo=bar,key=value,beer=pub')
'value'
>>> find_text('no match here')
''
Run Code Online (Sandbox Code Playgroud)
有可能find_text()成为一个班轮吗?
这只是一个例子,我正在寻找一种通用的方法.
给定一个更高阶函数,它将多个函数作为参数,该函数如何将关键字参数传递给函数参数?
例
def eat(food='eggs', how_much=1):
print(food * how_much)
def parrot_is(state='dead'):
print("This parrot is %s." % state)
def skit(*lines, **kwargs):
for line in lines:
line(**kwargs)
skit(eat, parrot_is) # eggs \n This parrot is dead.
skit(eat, parrot_is, food='spam', how_much=50, state='an ex-parrot') # error
Run Code Online (Sandbox Code Playgroud)
state不是关键字arg,eat那么skit如何才能传递与其调用的函数相关的关键字args?
我想做这样的事情:
soup.find_all('td', attrs!={"class":"foo"})
Run Code Online (Sandbox Code Playgroud)
我想找到所有没有foo类的td.
显然以上不起作用,有什么作用?
Angular 1.3引入了一种新debugInfoEnabled()方法,如果false在应用程序配置函数中调用,它可以提高性能:
myApp.config(['$compileProvider', function ($compileProvider) {
$compileProvider.debugInfoEnabled(false);
}]);
Run Code Online (Sandbox Code Playgroud)
此外,Angular 1.3放弃了IE8的支持.这对我来说是一个问题,我的应用程序必须在IE8上运行.因此,我无法升级到角度1.3并且必须使用1.2.
有没有办法用角度1.2实现相同的功能?
特别是,至少有一部分debugInfoEnabled()做了:
ng-scope/ ng-isolated-scopeCSS类作为一种可能的选择,我可以分叉angularjs存储库并将该功能反向回1.2.然后,使用fork维护来自上游的更新.
非常感谢任何指针.
无论我做什么,我都无法通过量角器测试获得悬停状态.以下代码是半功能的..
obj
.getCssValue('color')
.then(function (color1) {
browser
.actions()
.mouseMove(obj)
.perform()
.then(function () {
obj
.getCssValue('color')
.then(function (color2) {
expect(color1)
.not
.toEqual(color2);
});
});
Run Code Online (Sandbox Code Playgroud) javascript selenium end-to-end selenium-webdriver protractor
故事:
在我们的测试代码库中的几个地方,我们断言不同的CSS值等于期望值.通常情况下,这是一个color,background-color,font相关的样式属性,或cursor.这个问题是关于处理颜色.
以下是当前通过的示例工作测试:
describe("AngularJS home page", function () {
beforeEach(function () {
browser.get("https://angularjs.org/");
});
it("should show a blue Download button", function () {
var downloadButton = element(by.partialLinkText("Download"));
expect(downloadButton.getCssValue("background-color")).toEqual("rgba(0, 116, 204, 1)");
});
});
Run Code Online (Sandbox Code Playgroud)
它检查AngularJS网站上的"下载"按钮是否具有0, 116, 204, 1RGBA值.
现在,如果颜色发生变化,测试将失败,例如:
Expected 'rgba(0, 116, 204, 1)' to equal 'rgba(255, 116, 204, 1)'.
Run Code Online (Sandbox Code Playgroud)
问题:
正如您所看到的,首先,期望本身并不可读.除非我们在其附近发表评论,否则我们期望看到的颜色并不明显.
此外,错误消息不提供信息.目前还不清楚实际的颜色是什么,我们期望看到什么颜色.
问题:
是否有可能改进测试本身和错误消息,使其更具可读性和信息性,并且操作颜色名称而不是颜色RGB/RGBA值?
期望的期望:
expect(downloadButton).toHaveBackgroundColor("midnight blue");
Run Code Online (Sandbox Code Playgroud)
所需的错误消息:
Expect 'blue' to equal 'black'
Expect 'dark grey' …Run Code Online (Sandbox Code Playgroud) 如何将网页滚动到页面顶部.
我知道滚动页面到底部是:
window.scrollTo(0,document.body.scrollHeight)
Run Code Online (Sandbox Code Playgroud)
就像那样可以将页面滚动到顶部
python ×6
javascript ×3
lxml ×2
protractor ×2
regex ×2
selenium ×2
xml ×2
xml-parsing ×2
angularjs ×1
backport ×1
comments ×1
css ×1
debugging ×1
end-to-end ×1
function ×1
html ×1
html-parsing ×1
jasmine ×1
kwargs ×1
parsing ×1
performance ×1
python-2.7 ×1
rgba ×1
string ×1
syntax ×1