0

質問があります:

python xmlパーサー( beautifulsoup )を使用して名前空間を持つXMLを解析しています。そのxmlを保存すると、パーサーは名前空間の「xsi:」を{http://www.w3.org/2001/XMLSchemaに置き換えます。 -インスタンス}どうすれば彼がそれを行うのを防ぐことができますか?

例:

<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

バグを報告しました。また、BeautifulSoupの次のリリースで修正される予定です。

于 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 に答える