我试图更改xml文件中的文本值,需要使用lxml库返回更新后的xml内容。我可以成功地更新该值,但是更新的xml文件包含“\n”(下一行)字符,如下所示。在
输出:
<?xml version='1.0' encoding='ASCII'?>\n<Order>\n <content>\n <sID>123</sID>\n <spNumber>UserTemp</spNumber>\n <client>ARRCHANA</client>\n <orderType>Dashboard</orderType>\n </content>\n
<content>\n <sID>111</sID>\n <spNumber>UserTemp</spNumber>\n <client>ARRCHANA</client>\n <orderType>Dashboard</orderType>\n </content>\n
</Order>
注意:我没有格式化上面的xml输出,而是发布了如何从输出控制台获得它。在
输入:
^{pr2}$此外,我还尝试使用删除输出xml文件中的\n字符
getValue = getValue.replace('\n','')
但是,运气不好。在
下面的代码用于更新xml(标记),并尝试返回更新后的xml内容。在
Python代码:
from lxml import etree
from io import StringIO
import six
import numpy
def getListOfNodes(location):
f = open(location)
xml = f.read()
f.close()
#print(xml)
getXml = etree.parse(location)
for elm in getXml.xpath('.//Order//content/client'):
index='ARRCHANA'
elm.text=index
#with open('C:\\New folder\\temp.xml','w',newline='\r\n') as writeFile:
#writeFile.write(str(etree.tostring(getXml,pretty_print=True, xml_declaration=True)))
getValue=str((etree.tostring(getXml,pretty_print=True, xml_declaration=True)))
#getValue = getValue.replace('\n','')
#getValue=getValue.replace("\n","<br/>")
print(getValue)
return getValue
当我试图通过firefox浏览器打开响应负载时,它会显示以下错误消息:
XML Parsing Error: no element found Location:
file:///C:/New%20folder/Confidential.xml Line Number 1, Column 1:
当它在xml文件中找到“\n”字符时,它表示“在xml文件的第1行第1列中找不到位置”。在
有人能帮助我更好的方法来更新文本值,并且不需要任何额外的字符就返回它。在
我自己用下面的脚本解决了这个问题:
相关问题 更多 >
编程相关推荐