Форум сайта python.su
0
Требуется проверить xml на отсутствие косяков, которые могут нарушить структуру (при этом сама структура неизвестна).
Например xml вида:
<root>
<item1>text</item1>
<item2 attr1="attr1"/>
</root>
<root>
<item1text</item1>
em2 attr1="attr1"/>
</root>
Офлайн
0
fyrrosvalid.xml
Требуется проверить xml на отсутствие косяков
<root>
<item1>text</item1>
<item2 attr1="attr1"/>
</root>
<root>
<item1text</item1>
em2 attr1="attr1"/>
</root>
#-*- codepage: cp1251 -*-
from xml.etree.ElementTree import ElementTree
def verifyXml(filename):
tree = ElementTree()
try:
tree.parse(filename)
except:
return False
return True
def main():
for f in ['valid.xml', 'invalid.xml']:
print 'File %s is %s' % (f, 'valid' if verifyXml(f) else 'invalid')
if __name__ == '__main__':
main()
File valid.xml is valid
File invalid.xml is invalid
Отредактировано (Авг. 22, 2011 02:24:32)
Офлайн
41
etree.XMLParser(dtd_validation=True)
как вариант. а так читайте http://lxml.de/validation.html#xmlschema
Офлайн
72
slav0nicПри чем тут xmlschema? Он же только на well-formed хочет проверить, а не на валидность.
etree.XMLParser(dtd_validation=True)
как вариант. а так читайте http://lxml.de/validation.html#xmlschema
Офлайн
41
я про часть о валидации ващет, термин “косяки” довольно обширен и разнообразен ;)
Офлайн