Как проверить, есть ли в файле XML какие-либо узлы, кроме корневого? - PullRequest
2 голосов
/ 01 февраля 2011

С XSLT я обрабатываю xml-файл, который может не иметь никаких узлов, кроме корневого.Я хочу вывести специальное сообщение на странице HTML для этого случая.Я использую для каждого элемента для обработки файла XML.Как проверить, есть ли в xml-файле какие-либо фактические узлы?

1 Ответ

4 голосов
/ 01 февраля 2011

Как проверить, что файл XML не имеет Вершины?

По определению, любой правильно сформированный XML-документ содержит как минимум верхний элемент.

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

Я понимаю этот вопрос как вопрос: " Как определить, что у верхнего элемента XML-документа нет потомков?"

На самом деле это вопрос XPath . Это выражение XPath:

/*[not(node())]

равен true() точно, когда верхний элемент документа не имеет дочерних узлов (элементов, текстовых узлов, инструкций по обработке или комментариев).

Верхний элемент все еще может иметь атрибуты, и он всегда имеет узлы пространства имен , но эти два типа узлов не считаются в точности "дочерними".

/*[not(node()) and not(@*)] 

равен true() точно, когда верхний элемент не имеет дочерних узлов и атрибутов.

/*[not(*)]

равен true() точно, когда верхний элемент не имеет дочерних узловых элементов (но он все еще может иметь дочерние узлы текстовых узлов, дочерние инструкции обработки и дочерние узлы комментариев).

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