【发布时间】:2011-07-21 11:48:56
【问题描述】:
我需要像解析 XML 一样在 Python 中解析文件 .xsd。
我正在使用 libxml2。
我必须解析如下所示的 xsd:
<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>
当我访问时
doc.xpathEval('//xs:complexType/xs:sequence/xs:element[@name="IeplcHeader"]'):
告诉我找不到路径。
如果我删除所有xs:如下
<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>
这样就可以了
doc.xpathEval('//complexType/sequence/element[@name="IeplcHeader"]'):
有谁知道我如何才能了解修复前缀的这个问题?现在我正在准备删除 xs 的文件:但这是一个糟糕的解决方案,我真的希望能够找到更好的解决方案。
(我还没有尝试使用 py-dom-xpath,我不知道是否可以使用 xs :)
谢谢, 步骤
【问题讨论】: