使用getElementsByTagName替换节点的值

XML

8.4.27.5

Python
来自XML.Dom Import Minidom
xmldoc = minidom.parse('c:\ testProfile.xml')
xmldoc
ibnodelist = xmldoc.getElementsbytagname(" ib")
firstChild = xmldoc.firstchild
对于xmldoc.getelementsbytagname('ib')中的节点:#访问每个节点

打印node.toxml()
node.replacechild("

8.4.27.5

",node)
错误
Trackback(最近的最新电话):
文件" c:\ python25 \ lib \ site-packages \ pythonwin \ pywin \ framework
\ Scriptutils.py",第310行,在Runscript中
__. __.__ dict __中的exec codeObject
文件" C:\ Documents and Settings \ Vineyo \ Desktop \ parsexml.py",line
17,在<模块>中
node.firstchild.replacechild("

8.4.27.5

",node.firstchild)
文件" C:\ python25 \ lib \ xml \ xml \ dom \ minidom.py,第899行
self.nodename +"节点没有孩子")
HierarchyRequesterr:#Text节点没有孩子
问题:
是否有一种简单的方法来替换的节点值?也许我是
尝试使用错误的Python XML库?任何帮助将是极大的
感谢.

# 回答1


Ouray Viney写道:
我自己使用4套件.
请参阅手册的第3.2.1节:
"""
3.2.1 getElementsbytagname()怎么样?
不支持GetElementsByTagName()方法,因为有
更好的选择.特别是,您只能使用XPath:
doc.xpath(u" // tagname")
有关更多可能性,请参见getElementsbytagname替代方案.
""
# 回答2


Ouray Viney写道:
看起来像.尝试ElementTree.
来自XML.Etree导入ElementTree
tree = elementTree.parse(" yourfile.xml")
对于tree.findall(" // ib")中的IB:
ib.text = calculate_new_value(ib.text)
Stefan
# 回答3


8月10日,9:01*AM,Stefan Behnel 看起来像.尝试ElementTree.
* *来自XML.Etree导入ElementTree
* * tree = elementTree.parse(" yourfile.xml")
* *对于tree.findall(" // ib")中的IB.
* * * * ib.text = calculate_new_value(ib.text)
斯特凡
你好:
谢谢大家的回复.我在看elementtree
(http://effbot.org/zone/pythondoc-elementtree-
ElementTree.htm#ElementTree.ElementTree.Elementtre E-Class).这是
我仍然不清楚如何改变 我审查了可用的方法,但找不到任何合适的方法.
在您的示例中,您显示:
ib.text = calculate_new_value(ib.text)
我不知道什么计算_new_value()代表.
我正在寻找的是这样做的能力:
来自XML.Etree导入ElementTree
tree = elementTree.parse(" C:\ test.xml")
对于tree.findall(" // ib")中的IB:
ib.text =" somingsnew"
我还猜想我需要为文件编写新更改.
tree.write(" C:\ text.xml")
好消息,在写这个问题时,我测试了代码,
工作:).
请原谅我的琐碎问题,我是Python的新手,并感谢
你的帮助.
亲切RGD
# 回答4


Ouray Viney写道:
它的意思是伪代码.只需从字面上取函数名称并替换
它是通过为您提供想要分配的价值的东西(如
在哟 您的代码). 很高兴看到您找到了它. 写下一个问题很频繁 实际解决它. 别客气. Stefan

标签: python

添加新评论