0

私は問題があります。XMLコードにいくつかの変更を加えていますが、次のように重複することがあります:

<xref><mytag></xref></mytag>

XML ファイルを解析し、その問題を次のように修正するスクリプトを考えています。

<xref><mytag></mytag></xref><mytag></mytag>

誰でもそれで私を助けることができますか? たぶん正規表現?または、すぐに使用できるツール、Pythonスクリプトなど。修正するファイルがたくさんあります。すべてのアドバイスに感謝します!

4

3 に答える 3

4

使用しlxmlます。recoverライブラリは、フラグを設定することで、無効な XML の解析とクリーンアップを試みることができます。

>>> from lxml import etree
>>> from StringIO import StringIO
>>> ex = '<xref><mytag>there is some text</xref></mytag>'
>>> parser = etree.XMLParser(recover=True)
>>> tree = etree.parse(StringIO(ex), parser)
>>> etree.tostring(tree.getroot())
'<xref><mytag>there is some text</mytag></xref>'
于 2012-05-28T13:56:39.900 に答える
0

これは、Python で xml を扱うのに最適なツールです: lxml

あなたの問題ですが、そのxmlが無効であるため、lxmlでは解決できないと思います。xml ツールまたはライブラリ (lxml) を使用して有効な xml を生成し、この種の問題を回避することをお勧めします。

于 2012-05-28T13:47:00.807 に答える
0

C++ に関しては、POCO ライブラリの XML (Document) 機能を使用して XML ファイルを編集できます: Poco::XML::Document

于 2012-05-28T13:54:12.553 に答える