xmlGetValues
Проводит синтаксическую проверку и получает значения атрибутов выбранных тегов в XML-файле настроек
Синтаксис
Values = xmlGetValues(path2tag, attributes) Values = xmlGetValues(path2tag, attributes, XMLsource)
Аргументы
- path2tag
уникальная строка: в файле исходного XML-кода, путь, указывающий на выбранный тег, чьи атрибуты нужно прочитать. Путь является списком вложенных тегов, стоящих спереди от требуемого так, что
"/a/b/c/d"
, или, эквивалентно,"//b/c/d"
. Регистр учитывается.- attributes
вектор или матрица строк: имена атрибуты выбранного тега, чьи значения нужно прочитать. Порядок атрибутов не имеет значения относительно их фактического порядка в теге.
- Имена атрибутов чувствительны к регистру.
- На самом деле имена указанного атрибута могут быть определены несколько раз.
- XMLsource
указывает на XML-документ из которого нужно извлечь информацию. Это может быть одно из следующих:
- уникальная строка: путь до исходного XML-файла. По умолчанию
рассматривается файл главных настроек
SCIHOME+'/XConfiguration.xml'
. - XML-указатель типа
XMLdoc
, возвращаемой ранее в качестве внешней инструкцииxmlRead(XMLsource)
,
- уникальная строка: путь до исходного XML-файла. По умолчанию
рассматривается файл главных настроек
- Values
матрица строковых значений: значения выбранных атрибутов выбранного тега:
- Если набор выбранных атрибутов
attributes
указан в виде матрицы с несколькими строками, то используется только первое появление выбранного тега, иValues(i,j)
- это значение его атрибутовattributes(i,j)
. - В противном случае, если имена атрибутов
attributes
указаны в виде вектора-строки, то рассматриваются все появления выбранного тега: результаты возвращаются с одной строкой на появление, и одним столбцом на атрибут. Таким образом,Values(i,j)
- это значение атрибутовattributes(j)
дляi
-той встречи тега в документе.
evstr()
может быть применён к ним для получения ожидаемых чисел.- Если набор выбранных атрибутов
Описание
Когда XML-указатель, возвращённый с помощью xmlRead(..)
, указан
в качестве XMLsource
, то xmlGetValues()
исползует его напрямую для проверки синтаксиса XML-документа настроек, открытого
ранее с помощью xmlRead(..)
. Это полезно, когда синтаксис одного и того
же документа нужно проверить множеством вызовов xmlGetValues()
,
обычно для обращения к разным XML-тегам. В этом случае не следует забывать
закрыть XML-документ после всей обработки.
Когда путь до XML-файла настроек указан в качестве XMLsource
,
то xmlGetValues()
открывает файл, строит его DOM-дерево,
проверяет синтаксис дерева для выбранного тега и атрибутов, и, наконец, удаляет
дерево и закрывает файл перед тем, как вернуть результаты. Это то, что происходит
по умолчанию в соответствии с файлом настроек Xconfiguration.xml, когда нет явного
указания XMLsource
.
Аргумент path2tag
должен быть корректным путём "XPath",
соответствующим рекомендациям W3C.
Далее приведены примеры. Если путь исползует промежуточный или конечный тег, который
не существует, или, если один из ряда атрибутов не существует, то выдаётся ошибка.
Примеры
Пример 1:Ваши интернет- и прокси-настройки для Scilab хранятся по умолчанию в файле настроек
SCIHOME+'/XConfiguration.xml'
. Рассмотрим следующий отрывок файла:
<?xml version="1.0" encoding="utf-8" standalone="no"?> <interface height="600" path="1/" version="0.17" width="800"> <general title="_(General)"> ... </general> <web title="_(Web)"> <body> <web command-browser="" command-mailer="" default-browser="true" default-mailer="true"/> <proxy enabled="false" host="" password="" port="" user=""/> <previous-proxy enabled="false" host="" password="" port="" user=""/> </body> </web> ... </interface>
Чтобы получить информацию прокси-параметров (тег proxy), требуемый код должен быть:
proxy = xmlGetValues("//web/body/proxy", ["enabled", "host", "port"]);
Пример 2:
xmlGetValues()
может также использоваться для получения значений
тега, имеющих множество появлений в файле XMLsource
. Например,
ваши настройки в редакторе Scinotes Scilab'а хэранятся в файле
SCIHOME\scinotesConfiguration.xml
. Список последних файлов,
открытых в Scinotes в следующей части и пути:
<?xml version="1.0" encoding="utf-8" standalone="no"?> <Setting version="0.42"> <!-- SCINOTES configuration --> <Profile name="scinotes"> <!-- .../... --> <!-- Recent Opened Files Section --> <recentFiles> <document path="C:\Path\to\my\first\working\dir\ged_move_entity.sci"/> <document path="C:\Path\to\my\first\working\dir\ged_loop.sci"/> <document path="C:\Path\to\my\first\working\dir\test_legend_move.sce"/> <document path="C:\Path\to\another\working\dir2\clf.sci"/> </recentFiles> <!-- .../... --> </Profile> </Setting>
Тогда следующий год извлечёт, вернёт и выведет на экран столбец недавних файлов:
scinotesFile = SCIHOME + "/scinotesConfiguration.xml"; recent = xmlGetValues("//Setting/Profile/recentFiles/document", "path", scinotesFile); mprintf("%s\n", recent)
C:\Path\to\my\first\working\dir\ged_move_entity.sci C:\Path\to\my\first\working\dir\ged_loop.sci C:\Path\to\my\first\working\dir\test_legend_move.sce C:\Path\to\another\working\dir2\clf.sci
Смотрите также
- xmlXPath — Make a XPath query on a XML document
- язык XML-пути
- xmlRead — Read a XML stream from a local or distant file
- xmlDelete — Delete a XML document
- atomsGetConfig — Get ATOMS system parameters
- printsetupbox — Display print dialog box.
- csvDefault — Get or set defaults behavior for csv files.
История
Версия | Описание |
6.0.2 | Введена xmlGetValues(), которая раньше была getPreferencesValue(). |
Report an issue | ||
<< xmlGetOpenDocs | XML Management | xmlIsValidObject >> |