社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

mzjn

mzjn 最近创建的主题
mzjn 最近回复了

使用lxml解析XML时,原始名称空间前缀将被保留。下面的代码符合您的要求。注意使用 {*} 作为命名空间通配符。

from lxml import etree
 
tree = etree.parse("data1.xml")
 
for name in tree.findall(".//{*}name"):
    name.text = "Sir " + name.text
6 年前
回复了 mzjn 创建的主题 » 为什么从django导入*不能导入所有子模块?

没有 __all__ django/__init__.py . 这就是为什么通配符导入 from django import * 不起作用。

见 https://docs.python.org/3/tutorial/modules.html#importing-from-a-package Can someone explain __all__ in Python? .

9 年前
回复了 mzjn 创建的主题 » python:用elementtree解析xml并用名称空间编写

注意“xml包”和“ xml “图书馆”是模棱两可的。标准库中有几个与xml相关的模块: https://docs.python.org/3/library/xml.html .

为什么要修改?

elementtree将命名空间声明移动到根元素,并移除文档中未实际使用的命名空间。

ElementTree为什么要这么做?我不知道,但也许这是一种简化实现的方法。

我怎样才能防止这种情况?例如,我只想替换一个非常复杂的XML文件中的特定标记或它的值,而不丢失任何其他信息。

我不认为有什么办法可以阻止这一切。这个问题以前就提过。这里有两个非常相似的问题,没有答案:

我的建议是 lxml 而不是元素树。使用lxml,命名空间声明将保留在原始文件中出现的位置。

一号线不见了。

那一行是xml声明。建议但不是强制性的。

如果始终需要XML声明,请使用 xml_declaration=True 在 write() 方法调用。