如何使用包含CDATA的某些元素创建XML文件

时间:2017-03-09 23:54:44

标签: python xml python-3.x beautifulsoup

当我创建一个XML文档时,它会逃避CDATA中的所有内容。

so.py

from bs4 import BeautifulSoup
import codecs

#Open file
import codecs
f = codecs.open('so.xml','r','utf-8')
soup = BeautifulSoup(f.read(),"lxml-xml")
f.close()

def create_a_XML_file(content, filename = 'hello.xml'):
    f = codecs.open(filename, "w",'utf-8')
    f.write(str(content))
    f.close()

#Change or update some XML element value
soup.filename.notes.string = "économie"
soup.filename.description.string = "<![CDATA[<h1>économie</h1>]]"

#print(soup.prettify().encode('UTF-8'))

create_a_XML_file(soup, "so2.xml")

so.xml

<?xml version="1.0" encoding="UTF-8"?>
<filename data="so.xml" mois="août">
   <notes name="économie">Lorem ipsum dolor sit amet</notes>
   <notes_script><![CDATA[L'Enquête sur le chômage
<ul>
  <li>économie</li>
  <li>données</li>
  <li>résultats</li>
  <li>après</li>
</ul>]]></notes_script>
<description></description>
</filename>

so2.xml(这是结果)

<?xml version="1.0" encoding="utf-8"?>
<filename data="so.xml" mois="août">
<notes name="économie">économie</notes>
<notes_script>L'Enquête sur le chômage
&lt;ul&gt;
  &lt;li&gt;économie&lt;/li&gt;
  &lt;li&gt;données&lt;/li&gt;
  &lt;li&gt;résultats&lt;/li&gt;
  &lt;li&gt;après&lt;/li&gt;
&lt;/ul&gt;</notes_script>
<description>&lt;![CDATA[&lt;h1&gt;économie&lt;/h1&gt;]]</description>
</filename>

我想知道如何保存“&lt;”和“&gt;”

0 个答案:

没有答案