У меня есть следующая строка XPATH:
// йе [@ nItem = "1"] / прод / cProd
Успешно выбирает нужный узел с помощью XPath Visualizer , где он автоматически идентифицирует пространство имен и определяет, в каком пространстве имен вы хотите выбрать.
Когда я указываю пространство имен в C # со следующим кодом XPATH:
"http://www.portalfiscal.inf.br/nfe//det[@nItem=\"1\"]/prod/cProd"
это дает мне XPathException:
Необработанное исключение типа
'System.Xml.XPath.XPathException'
произошло в System.Xml.dll Дополнительные
Информация:
«http://www.portalfiscal.inf.br/nfe//det[@nItem="1"]/prod/cProd'
имеет неверное квалифицированное имя.
(как вы можете видеть, это не какой-либо экранирующий символ или что-либо еще, поскольку он дает мне то, чего я пытался достичь в исключении)
Как правильно выбрать этот узел, если я знаю пространство имен с XPath?
- [EDIT] -
Полная строка, где я пытаюсь прочитать узел:
doc.XPathSelectElement("http://www.portalfiscal.inf.br/nfe//det[@nItem=\"1\"]/prod/cProd").Value;
А XML с ненужными вещами вырезан:
<?xml version="1.0" encoding="utf-8"?>
<enviNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.10">
<idLote>1</idLote>
<NFe>
<infNFe versao="1.10" Id="NFe31100118583682000178550010000077778397333128">
<det nItem="1">
<prod>
<cProd>111</cProd>
</prod>
</det>
</infNFe>
</NFe>
</enviNFe>
(Вырезать ненужные вещи не должно быть проблемой, поскольку XPath Visualizer принес мне узел без проблем)