我有一个 XML 文件,正在将其导入 BeautifulSoup 并进行解析。一个节点具有以下功能:
<DIAttribute name="ObjectDesc" value="Line1
Line2
Line3"/>
Run Code Online (Sandbox Code Playgroud)
请注意,该值在文本中包含
和。
我理解这些是回车符和换行符的 XML 表示形式。
当我导入 BeautifulSoup 时,该值会转换为以下内容:
<DIAttribute name="ObjectDesc" value="Line1
Line2
Line3"/>
Run Code Online (Sandbox Code Playgroud)
您会注意到被
转换为换行符。
我的用例要求该值保持原始值。知道如何让它留下来吗?还是转换回来?
from bs4 import BeautifulSoup #version 4.4.0
s = BeautifulSoup(open('test.xml'),'lxml-xml',from_encoding="ansi")
print s.DIAttribute
#XML file looks like
'''
<?xml version="1.0" encoding="UTF-8" ?>
<DIAttribute name="ObjectDesc" value="Line1
Line2
Line3"/>
'''
Run Code Online (Sandbox Code Playgroud)
Notepad++ 表示源 XML 文件的编码是 ANSI。
print s.DIAttribute.prettify('ascii')
print s.DIAttribute.prettify('windows-1252')
print s.DIAttribute.prettify('ansi')
print s.DIAttribute.prettify('utf-8')
print s.DIAttribute['value'].replace('\r','
').replace('\n','
') #This works, but it feels like …Run Code Online (Sandbox Code Playgroud)