我在解析节点树时遇到了问题。这是我正在使用的XML文档示例:
<result>
<type>street_address</type>
<formatted_address>Krasickiego 6, 83-020 Cedry Wielkie, Poland</formatted_address>
<address_component>
<long_name>6</long_name>
<short_name>6</short_name>
<type>street_number</type>
</address_component>
<address_component>
<long_name>Krasickiego</long_name>
<short_name>Krasickiego</short_name>
<type>route</type>
</address_component>
<address_component>
<long_name>Cedry Wielkie</long_name>
<short_name>Cedry Wielkie</short_name>
<type>locality</type>
<type>political</type>
</address_component>
<address_component>
<long_name>Gmina Cedry Wielkie</long_name>
<short_name>Gmina Cedry Wielkie</short_name>
<type>administrative_area_level_3</type>
<type>political</type>
</address_component>
<address_component>
<long_name>Gdańsk County</long_name>
<short_name>Gdańsk County</short_name>
<type>administrative_area_level_2</type>
<type>political</type>
</address_component>
<address_component>
<long_name>Pomeranian Voivodeship</long_name>
<short_name>Pomeranian Voivodeship</short_name>
<type>administrative_area_level_1</type>
<type>political</type>
</address_component>
<address_component>
<long_name>Poland</long_name>
<short_name>PL</short_name>
<type>country</type>
<type>political</type>
</address_component>
<address_component>
<long_name>83-020</long_name>
<short_name>83-020</short_name>
<type>postal_code</type>
</address_component>
</result>
我想从这棵树中获取国家代码(PL)和邮政编码(83-020)。我相信我能够在树中搜索包含文本&#34; country&#34;和&#34; postal_code&#34;并使用正确的名称获取兄弟节点(例如,搜索&#34; country&#34;并获取名为&#34; short_name&#34;的兄弟节点),但我不确定如何。我能帮助朝着正确的方向前进吗?我在C#中工作并使用XPath。
答案 0 :(得分:0)
此XPath查询应返回short_name节点,该节点有一个名为type的兄弟节点,其值为“postal_code”:
XmlNode node = doc.SelectSingleNode("result/address_component[type='postal_code']/short_name")
执行相同操作以查找国家/地区代码:
XmlNode node = doc.SelectSingleNode("result/address_component[type='country']/short_name")