Настройка XPath и использование LINQ - PullRequest
0 голосов
/ 13 января 2011

У меня есть сценарий, в котором мне нужно проверить количество узлов в файле XML.Поскольку XPath может различаться для разных сценариев, я хотел бы настроить это в xml / текстовом файле

. Я проверял в XQuery, но вряд ли смогу найти какую-либо реализацию в C #.

Поскольку LINQ также делает подобное, я думаю об этом.

Пример.XML:

<ROOT><NODE1><TXT>ABC</TXT></NODE1><NODE1><TXT>DEF</TXT></NODE1></ROOT>

Я хотел бы настроить свое состояние следующим образом (в текстовом файле):

/ROOT/NODE1/TXT [COUNT=2]

будет n-число xpath, подобное этому

Как легко я могу использовать LINQ, проверить XPATH и получить счет?

Заранее спасибо

Приветствия, Картик

Ответы [ 2 ]

3 голосов
/ 13 января 2011

Проверьте ссылку System.Xml.Xpath, которая позволяет использовать xpath для работы с данными XML.

XDocument doc = XDocument.Load(filePath);
var xPath = @"/ROOT/NODE1/TXT";
int count = doc.XPathSelectElements(xPath).Count();
0 голосов
/ 13 января 2011
XDocument doc = XDocument.Load(xmlFilePath);
int count = doc.Descendants("TXT").Count();

В этом случае вы можете сделать:

        XDocument doc = XDocument.Load(filePath);
        var xPath = @"/ROOT/NODE1/TXT";
        int count = doc.Descendants(xPath.Substring(xPath.LastIndexOf("//") + 1)).Count();

но это не общий случай, что бы вы объяснили более подробно о вашем состоянии принудительно использовать строки XPath?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...