Harici bir katalog dosyası kullanarak bu belgeyi DTD'sine karşı doğrulamak için bir XML belgesini lxml kullanarak ayrıştırdığım bir yol var mı? Bir belgenin DTD'sinde tanımlanan sabit öznitelikleri kullanabilmem gerekir.Python'un lxml ile bir XML kataloğu kullanıyor musunuz?
cevap
Bir örnek verebilir misiniz? lxml validation docs'a göre, lxml, düşündüğüm çoğu vakayı kapsayan DTD doğrulamasını (XML belgesinde veya harici olarak kodda) ve sistem kataloglarını işleyebilir.
f = StringIO("<!ELEMENT b EMPTY>")
dtd = etree.DTD(f)
dtd = etree.DTD(external_id = "-//OASIS//DTD DocBook XML V4.2//EN")
kaynak sadece hata işleme için bazı #DEFINEs çıkıyor grepping, bu libxml2 özelliği açığa etmediğini LXML görünüyor: catalog implementation in libxml2 page itibaren
C:\Dev>grep -ir --include=*.px[id] catalog lxml-2.1.1/src | sed -r "s/\s+/ /g"
lxml-2.1.1/src/lxml/dtd.pxi: catalog.
lxml-2.1.1/src/lxml/xmlerror.pxd: XML_FROM_CATALOG = 20 # The Catalog module
lxml-2.1.1/src/lxml/xmlerror.pxd: XML_WAR_CATALOG_PI = 93 # 93
lxml-2.1.1/src/lxml/xmlerror.pxd: XML_CATALOG_MISSING_ATTR = 1650
lxml-2.1.1/src/lxml/xmlerror.pxd: XML_CATALOG_ENTRY_BROKEN = 1651 # 1651
lxml-2.1.1/src/lxml/xmlerror.pxd: XML_CATALOG_PREFER_VALUE = 1652 # 1652
lxml-2.1.1/src/lxml/xmlerror.pxd: XML_CATALOG_NOT_CATALOG = 1653 # 1653
lxml-2.1.1/src/lxml/xmlerror.pxd: XML_CATALOG_RECURSION = 1654 # 1654
lxml-2.1.1/src/lxml/xmlerror.pxi:CATALOG=20
lxml-2.1.1/src/lxml/xmlerror.pxi:WAR_CATALOG_PI=93
lxml-2.1.1/src/lxml/xmlerror.pxi:CATALOG_MISSING_ATTR=1650
lxml-2.1.1/src/lxml/xmlerror.pxi:CATALOG_ENTRY_BROKEN=1651
lxml-2.1.1/src/lxml/xmlerror.pxi:CATALOG_PREFER_VALUE=1652
lxml-2.1.1/src/lxml/xmlerror.pxi:CATALOG_NOT_CATALOG=1653
lxml-2.1.1/src/lxml/xmlerror.pxi:CATALOG_RECURSION=1654
mümkün görünüyor ki 'şeffaf'/etc/xml/catalog içinde yükleme yoluyla işlenmesi hala lxml'de çalışabilir, ancak bundan daha fazlasına ihtiyacınız varsa, her zaman lxml'yi terk edebilir ve katalog işlevlerini açığa çıkaran varsayılan python bağlamaları kullanabilirsiniz.
Sen XML_CATALOG_FILES
ortam değişkeni katalog ekleyebilirsiniz:
os.environ['XML_CATALOG_FILES'] = 'file:///to/my/catalog.xml'
this thread bakınız. XML_CATALOG_FILES
'daki girişlerin boşlukla ayrılmış URL'leri olduğunu unutmayın. URL'yi bir yol adından oluşturmak için Python'un pathname2url
ve urljoin
'u (file:
ile) kullanabilirsiniz.
- 1. Subversion ile diffstat kullanıyor musunuz?
- 2. SqlCommand'ı Yeniden Kullanıyor musunuz?
- 3. XML ile ayrıştırma lxml ve Python
- 4. NSDictionary ile çalışırken sabitler kullanıyor musunuz?
- 5. lxml python ile xml dosyasındaki öğeyi kaldır
- 6. Enum vs Boolean kullanıyor musunuz?
- 7. Python: xml şema özniteliklerini lxml
- 8. Çıktının XML olarak biçimlendirilmesi lxml
- 9. Gözlemci modelini bir notifier olarak kullanıyor musunuz?
- 10. Tutulma sırasında Android build.xml kullanıyor musunuz?
- 11. Veritabanı işlem yönetimi için AOP kullanıyor musunuz?
- 12. Etiketler: ile lxml içinde
- 13. 'XMLNAMESPACES ... İLE XML PATH İÇİN' çıkışını bir değişkene ayarlayamıyor musunuz?
- 14. 'Korumak için' xml: boşluk 'Python lxml
- 15. Satranç programlamasında özyinelemeyi iyi kullanıyor musunuz?
- 16. Perl'i uzatmak için Haskell'i kullanıyor musunuz?
- 17. Swift Realm'de RLMObject veya Object kullanıyor musunuz?
- 18. SSIS Kataloğu
- 19. VirtualBox: Misafirte bir program başlatmak için SDK API'yı kullanıyor musunuz?
- 20. Bunu kullanarak piton ve LXML gibi görünen bir xml giriş oluşturmak için çalışıyorum Nasıl LXML
- 21. lxml
- 22. LXML kullanarak bir XML etiketi için özyinelemeli olarak nasıl bulunur?
- 23. Lxml: Ben buna benzer bir xml dosyası var
- 24. Jailbreak olmayan VNC sunucusu? Bir iOS cihazını uzaktan kullanıyor musunuz?
- 25. Herhangi bir özel ASP.NET MVC HtmlHelper uzantısı kullanıyor musunuz?
- 26. Node.js istek nesne kataloğu?
- 27. Varlık Kataloğu projede kullanılmıyor
- 28. lxml ile Metin Düğümü nasıl oluşturulur?
- 29. Adlandırılmış öğe nitelikleri LXML ile nasıl yazılır?
- 30. lxml ile xsd türüne göre öğeleri bulun