擅长:python、mysql、java
<p>Python的标准<code>ElementTree</code>库不支持CDATA部分,因此需要确保使用的是<code>lxml</code>。假设您已经将<code><Enquiry></code>元素另存为一个字符串,这将为您提供您要查找的内容:</p>
<pre><code>from lxml import etree as ET
SOAP_NS = 'http://schemas.xmlsoap.org/soap/envelope/'
WEB_NS = 'http://webservice.ucr.oga.kesws.crimsonlogic.com/'
ns_map = {'soapenv': SOAP_NS, 'web': WEB_NS}
env = ET.Element(ET.QName(SOAP_NS, 'Envelope'), nsmap=ns_map)
head = ET.SubElement(env, ET.QName(SOAP_NS, 'Header'), nsmap=ns_map)
body = ET.SubElement(env, ET.QName(SOAP_NS, 'Body'), nsmap=ns_map)
val = ET.SubElement(body, ET.QName(WEB_NS, 'ucrValidation'), nsmap=ns_map)
arg = ET.SubElement(val, 'arg0')
arg.text = ET.CDATA('Here is where you can put your CDATA text!!!')
# now you have XML!
print(ET.tostring(env, pretty_print=True))
</code></pre>
<p>我使用<code>QName</code>函数创建包含名称空间URI的元素名称。传递给<code>Element</code>和<code>SubElement</code>(另一个<code>lxml</code>扩展名)的命名空间映射将该URI映射到前缀,该前缀用于输出:</p>
^{pr2}$