我有一个问题:
我正在使用python xml解析器(beautifulsoup)解析具有命名空间的XML,当我保存该xml时,解析器将使用{http:// www替换命名空间中的“xsi:”。 w3.org/2001/XMLSchema-instance}我怎么能阻止他这样做呢?
示例:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
变为:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" {http://www.w3.org/2001/XMLSchema-instance}schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
任何人都可以帮我解决这个问题吗?
此致 博
答案 0 :(得分:1)
我filed a bug for you.我还提交了一个修复程序,它将在下一个版本的Beautiful Soup中发布。
答案 1 :(得分:0)
这就是我暂时解决的问题。
soupOut = str(soup)
ns = re.search("<project [^>]* xmlns:xsi=\"(?P<ns>[^\"]*)\"[^>]*>",soupOut)
if ns:
soupOut = soupOut.replace("{%s}"%ns.group('ns'), 'xsi:')
file.write(soupOut)