Как использовать GetElementsByTagName для тега, который является тегом Spesifi c XMLDocument C# - PullRequest
0 голосов
/ 01 апреля 2020

Мне нужно прочитать файл Xml, и я пытаюсь подсчитать количество тегов spesifi c внутри файла. Моя проблема в том, что один и тот же тег представляет разные вещи, когда он находится вне какого-то другого тега и внутри. Я могу получить общее количество тегов, но мне нужно найти количество тегов внутри указанного тега.

(я нахожу всего около c: теги AllowanceCharge с помощью XmlNodeList nodeList = xmlDo c .DocumentElement.GetElementsByTagName ("ca c: AllowanceCharge");)

для поиска теги "ca c: AllowanceCharge", которые находятся внутри тегов "ca c: InvoiceLine", которые я пытался использовать:

XmlNodeList elemList = root.GetElementsByTagName(@"//cac:InvoiceLine/cac:AllowanceCharge");

XmlNodeList elemList = root.GetElementsByTagName(@"//InvoiceLine/AllowanceCharge");

XmlNodeList elemList = root.GetElementsByTagName(@"cac:InvoiceLine/cac:AllowanceCharge");

Буду признателен, если кто-нибудь скажет мне правильный синтаксис для Это. Спасибо.

1 Ответ

0 голосов
/ 01 апреля 2020

Первый выглядит правильно, если вы зарегистрировали привязку пространства имен cac

//cac:InvoiceLine/cac:AllowanceCharge

Существует также другой способ

//*[name()='InvoiceLine']/*[name()='AllowanceCharge']

Чтобы выбрать узлы с помощью XPath, вызовите SelectNodes метод:

var root = xmlDoc.DocumentElement;
var nodeList = root.SelectNodes(xpath);

или перегруженный метод

var nodeList2 = root.SelectNodes(xpath, namespaceManager);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...