我正在使用包含xs:choice的XML文档。文档中只能存在其中一个选项。 如何在运行时测试选择? 这是使用XMLSpy创建的文档模式的片段。
<xs:element name="Mount">
<xs:complexType>
<xs:choice>
<xs:element name="AzEl">
<xs:complexType>
<xs:attribute name="MaximumAzimuth" type="xs:float" use="required"/>
<xs:attribute name="MinimumAzimuth" type="xs:float" use="required"/>
<xs:attribute name="MaximumElevation" type="xs:float" use="required"/>
<xs:attribute name="MinimumElevation" type="xs:float" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="DriftScan">
<xs:complexType>
<xs:attribute name="Azimuth" type="xs:float" use="required"/>
<xs:attribute name="Elevation" type="xs:float" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="BirdBath">
<xs:complexType>
<xs:attribute name="Test" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="Manufacture"/>
<xs:attribute name="Model"/>
</xs:complexType>
</xs:element>
<
我试过了:
if ChildNodes['AzEl'].NodeValue <> null then
和
if Mount.AzEl <> nil then
但是这些不区分文档中的元素和不存在的元素。 我正在使用Delphi Seattle,Windows 10,XMLDocument和Binding向导。
答案 0 :(得分:1)
似乎有效的构造是:
if ChildNodes[0].LocalName = 'BirdBath' then
感谢Ken White的回答。