Potrzebuję parsować plik .xsd w Pythonie, ponieważ chciałbym parsować XML.
Używam libxml2.
muszę analizować xsd, które wyglądają następująco:
parsowanie .xsd w pythonie
<xs:complexType name="ClassType">
<xs:sequence>
<xs:element name="IeplcHeader">
<xs:complexType>
<xs:sequence>
<xs:element name="device-number" type="xs:integer" fixed="1"/>
</xs:sequence>
<xs:attribute name="version" type="xs:integer" use="required" fixed="0"/>
</xs:complexType>
</xs:element>
kiedy dostęp z
doc.xpathEval('//xs:complexType/xs:sequence/xs:element[@name="IeplcHeader"]'):
mi mówi, że nie może odnaleźć ścieżki.
natomiast jeśli usunąć wszystkie xs: jak postępować
<complexType name="ClassType">
<sequence>
<element name="IeplcHeader">
<complexType>
<sequence>
<element name="device-number" type="xs:integer" fixed="1"/>
</sequence>
<attribute name="version" type="xs:integer" use="required" fixed="0"/>
</complexType>
</element>
w ten sposób to działa
doc.xpathEval('//complexType/sequence/element[@name="IeplcHeader"]'):
Czy ktoś wie jak mogę dostać czytać tego problemu ustalające prefiks? righ teraz przygotowuję plik usuwający xs: ale jest to okropne rozwiązanie i naprawdę mam nadzieję, że uda mi się znaleźć lepsze rozwiązanie.
(nie próbowałem z PY-DOM-XPath jeszcze i nie wiem, czy może pracować nawet z xs :)
podziękowania ste
miłe biblioteka. ale nie jestem pewien, czy robi to, czego potrzebuję. Jest bardzo miły dla sprawdzania poprawności ... ale w tym momencie Po prostu muszę uzyskać dostęp do niektórych danych wewnątrz XSD ... brzmi to dziwnie, ale piszę skrypt, który ma CZYTAĆ niektóre dane z xsd ...;) I nie używam go do sprawdzania w tym momencie .. :) – Stefano
@Stefano: 'lxm' nie jest dobry tylko do sprawdzania poprawności, ale także do używania' xpath'. Pomocne byłoby wysłanie kompletnego (usuniętego) pliku xsd, aby wykonać testy – neurino