Вот один XML документ Я работаю с:Редактирование атрибуты нескольких XML-документов
<?xml version="1.0"?>
<document DOCID="501.conll.txt">
<span type="sentence">
<extent>
<charseq START="0" END="30">ATRIA SEES H2 RESULT UP ON H1 .</charseq>
</extent>
</span><span type="sentence">
<extent>
<charseq START="205" END="310">" The result of the second year-half is expected to improve on the early part of the year , " Atria said .</charseq>
Я перекручивание через набор XML-документы, чтобы получить все предложения, которые начинаются с пробелом. У меня нет никаких проблем, захватив все ошибки (ведущие пробелы) с этим:
>>> import re, os, sys
>>> import xml.etree.ElementTree as etree
>>> sentences = {}
>>> xmlAddresses = getListOfFilesInFolders(['XMLFiles'],ending=u'.xml') # my function to grab all XML files
>>> for docAddr in xmlAddresses:
>>> parser = etree.XMLParser(encoding=u'utf-8')
>>> tree = etree.parse(docAddr, parser=parser)
>>> sentences = getTokenTextFeature(docAddr,tree,sentences)
>>> rgxLeadingSpace = re.compile('^\"? .')
>>> for sent in sentences.keys():
>>> text = sentences[sent]['sentence']
>>> if rgxLeadingSpace.findall(text):
>>> print text # the second sentence is from the above XML doc
" It rallied on ideas the market was oversold , " a trader said .
" The result of the second year-half is expected to improve on the early part of the year , " Atria said .
" The head of state 's holiday has only just begun , " the agency quoted Sergei Yastrzhembsky as saying , adding that the president was currently in a Kremlin residence near Moscow .
Что мне нужно сделать, это, после обнаружения ошибки, цикл через все файлы XML, которые содержат эти ошибки и корректировать свои START
атрибуты. Например, это предложение из приведенного выше XML-документ, который содержал ведущее место:
<charseq START="205" END="310">" The result of the second year-half is expected to improve on the early part of the year , " Atria said .</charseq>
Он должен выглядеть следующим образом:
<charseq START="207" END="310">The result of the second year-half is expected to improve on the early part of the year , " Atria said .</charseq>
Я думаю, что я предоставил весь необходимый код. Если кто-то может мне помочь, я создам миллионные учетные записи StackOverflow и увеличу вам миллионы раз! :) Спасибо!
Я использую парсер и не Soley полагаться на регулярное выражение, так что не размещать эту ссылку о разборе XML с регулярным выражением: http://stackoverflow.com/questions/1732348/regex-match-open-tags -except-xhtml-self-contains-tags – tmthyjames