Мой XML документ выглядит следующим образом:XPath выбора элементов на основе других элементов в узле
<?xml version="1.0" encoding="ISO-8859-1"?>
<XCER xmlns="http://www.x.y.z/base" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.x.y.z/base APSchema.xsd" mp_id="56977" ma_id="398" sub_id="54977">
<final_result OD="DGS=1.7:ADB=2" creator="Px" version="1.1" xsi:type="XCT">
<code>3040280100331</code>
<code_cnf>1.0000</code_cnf>
<code_attr>seq</code_attr>
<status_attr>fdos</status_attr>
<text>xxx</text>
<standardized_text>xxxx</standardized_text>
<region>
<type>address</type>
<symbology>machine</symbology>
</region>
<recognized_elements>
<type>reg</type>
<nominal>
<type>reg</type>
<code>Dx</code>
<code_cnf>0.0635</code_cnf>
<location page="3">
<face>rear</face>
<polygon>
<dot x="720" y="709" />
<dot x="744" y="708" />
<dot x="744" y="591" />
<dot x="720" y="592" />
</polygon>
</location>
</nominal>
<reference>
<type>reg</type>
<code>Dx</code>
<match_cnf>1.0000</match_cnf>
<attribute>full_match</attribute>
</reference>
</recognized_elements>
<recognized_elements>
<type>cty</type>
<reference>
<type>cty</type>
<code>Dx 9</code>
<attribute>derived</attribute>
</reference>
</recognized_elements>
<standardized_elements>
<type>reg</type>
<code>Dx</code>
</standardized_elements>
<standardized_elements>
<type>cty</type>
<code>Dx 9</code>
<attribute>err</attribute>
</standardized_elements>
</final_result>
</XCER>
И я хочу сделать пару вещей с ним, и я не могу понять, как с помощью XPath, и я могу найти конкретный случай, который мне нужен в примерах, которые я нахожу в режиме онлайн. Моя проблема, я хочу, чтобы найти «Dxf», который находится в Recognized_elements: Ссылка: Код, но только тогда, когда есть «р» и есть full_match>
Выражение у меня есть, не работает, состоит в следующем:
doc.SelectSingleNode("/x:XCER[0]/x:final_result[@creator = 'Px']/x:recognized_elements/x:reference[type='reg' and attribute='full_match]/x:code", nsmgr).InnerText
ошибка я всегда получаю следующим образом: «ссылка на объект не указывает на экземпляр объекта»
Почему 'x: result', а не' x: final_result'? –
К сожалению, опечатка в оригинале, которую я сейчас изменил – foreachin
Вы также ищете узел 1 из 'XCER', тогда как корневой узел является узлом 0.' x: detected_elements' не имеет элемента 'attribute', это либо (это под ссылкой). –