Advertisement
Guest User

Untitled

a guest
Jun 3rd, 2013
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. s = """<!DOCTYPE root [
  2. ... <!ELEMENT root ANY>
  3. ... <!ELEMENT Person ANY>
  4. ... <!ELEMENT Customer EMPTY>
  5. ... <!ELEMENT Team EMPTY>
  6. ... <!ATTLIST Person SSN ID #REQUIRED>
  7. ... <!ATTLIST Customer id IDREF #REQUIRED>
  8. ... <!ATTLIST Team members IDREFS #REQUIRED>
  9. ... <!ATTLIST Person test CDATA "4">
  10. ... ]>
  11. ... <root>
  12. ... <Person SSN='A111'/>
  13. ... <Person SSN='A112'/>
  14. ... <Person SSN='A222'/>
  15. ... <Customer id='A111'/>
  16. ... <Customer id='A222334444'/>
  17. ... <Team members='A222334444 A333445555'/>
  18. ... </root>"""
  19. >>> e = etree.parse(StringIO(s), etree.XMLParser(load_dtd=True, attribute_defaults=True))
  20. >>> e.docinfo.internalDTD.elements()[1]
  21. <lxml.etree._DTDElementDecl object name='Person' prefix=None type='any' at 0x7f518f7462d0>
  22. >>> e.docinfo.internalDTD.elements()[1].attributes()
  23. []
  24. >>> for i in e.getroot():
  25. ... if i.tag == "Person":
  26. ... print(i.attrib)
  27. ...
  28. {'SSN': 'A111', 'test': '4'}
  29. {'SSN': 'A112', 'test': '4'}
  30. {'SSN': 'A222', 'test': '4'}
  31. >>> d = etree.DTD(StringIO(""" <!ELEMENT root ANY>
  32. ... <!ELEMENT Person ANY>
  33. ... <!ELEMENT Customer EMPTY>
  34. ... <!ELEMENT Team EMPTY>
  35. ... <!ATTLIST Person SSN ID #REQUIRED>
  36. ... <!ATTLIST Customer id IDREF #REQUIRED>
  37. ... <!ATTLIST Team members IDREFS #REQUIRED>
  38. ... <!ATTLIST Person test CDATA "4">
  39. ... """))
  40. >>> d.elements()[1]
  41. <lxml.etree._DTDElementDecl object name='Person' prefix=None type='any' at 0x7f518f7463d0>
  42. >>> d.elements()[1].attributes()
  43. [<lxml.etree._DTDAttributeDecl object name='SSN' elemname='Person' prefix=None type='id' default='required' default_value=None at 0x7f518f746310>, <lxml.etree._DTDAttributeDecl object name='test' elemname='Person' prefix=None type='cdata' default='none' default_value='4' at 0x7f518f746350>]
  44. >>>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement