0

我有个问题:

我正在解析一个带有 python xml 解析器 ( beautifulsoup ) 的命名空间的 XML,当我保存该 xml 时,解析器用 {http://www.w3.org/2001/XMLSchema 替换命名空间中的“xsi:” -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">

谁能帮我解决这个问题?

问候,博扬

4

2 回答 2

1

我已经为你提交了一个错误。我还提交了一个修复,它将在 Beautiful Soup 的下一个版本中发布。

于 2012-08-16T14:27:56.330 回答
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)
于 2012-08-15T11:08:24.637 回答