1

私は初心者のプログラマーで、おそらく簡単なこの問題に行き詰まっています。.xml ファイルの P タグに含まれる文に数字を自動的に追加したいのです。したがって、.xml ファイルのサンプル パラグラフは次のようになります。

<P>Sentence1. Sentence2. Sentence3.</P>

これを次のように変換したい:

<P><SUP>1</SUP>Sentence1.<SUP>2</SUP> Sentence2.<SUP>3</SUP> Sentence3.</P>

ただし、少なくとも 2 つのセンテンスを含む P タグのみに番号を付ける必要があります。1 つのセンテンスしか含まれていない場合は、そのままにしておきます。

正規表現を使用して、これまでに思いついたアプローチは次のとおりです。

\.\s.*
# Reliably finds the second sentence, Insert <SUP>2</SUP> after it.
<P>[^>]*<SUP>2
# Finds the beginning of the first sentence if a second sentence exists.

しかし、これは非常に厄介なアプローチであり、20 文以上を含む段落や、多くの段落を含む .xml ドキュメントを拡張する方法を実際には知らないと思います。これを達成するためのより良い正規表現、または正規表現よりも優れた (Python) ツールはありますか?

4

1 に答える 1

2

このようなもの(非常にテストされていない)が機能する可能性があります

import xml.etree.ElementTree as ET
tree = ET.parse(XML_FILE)
root = tree.getroot()


for p in root.iter('p'):
   sentences = p.text.split('.')
   p.text = ".".join([("<sup>%i<sup>" % count) + sentence for count, sentence in enumerate(sentences)])

tree.write(XML_FILE)
于 2012-09-28T16:46:46.797 に答える