下午。我试图解析和xsd文件中的元数据。我想为每个父标签解析所有元素标签的元数据。例如,对于下面的Speed_Detail
标记,我想收集与子element
属性相关的所有数据。假设父母处于同一水平。
```
<xsd:element name="SpeedDetails">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Header" type="global:HeaderInfoType"/>
<xsd:element name="SpeedUnitOfMeasure" type="xsd:string" minOccurs="0"/>
<xsd:element name="TileId" type="xsd:long" minOccurs="0"/>
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element name="Route" type="speed:RouteType"></xsd:element>
</xsd:sequence>
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element name="Segment" type="speed:SegmentType"></xsd:element>
</xsd:sequence>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
```
我知道我可以通过"//{ns}element".format(ns)
访问所有元素,但这会给出整个树中的所有元素。
我一直试图用".[@name='{}']*/{}element".format(name,ns)
之类的东西来收集元素。我无法让xpath工作,因为我不断获得invalid predicate error
。有人可以解释为什么会这样吗?你将如何编写正确的xpath?请添加您的思想进动。
答案 0 :(得分:0)
你在xpath中使用的-Name
是什么?这是无效的xpath。要添加到该命名空间(.Name
部分)通常在xpath解析器中被忽略。
所以在使用'rpcss', [pscustomobject] @{ Name = 'rpcss' } | Get-Service
包的python中,我得到了非常好的结果:
{}