Проводит синтаксическую проверку и получает значения атрибутов выбранных тегов в XML-файле настроек
Values = xmlGetValues(path2tag, attributes) Values = xmlGetValues(path2tag, attributes, XMLsource)
уникальная строка: в файле исходного XML-кода, путь, указывающий на выбранный тег,
чьи атрибуты нужно прочитать. Путь является списком вложенных тегов, стоящих спереди
от требуемого так, что "/a/b/c/d"
, или, эквивалентно,
"//b/c/d"
. Регистр учитывается.
вектор или матрица строк: имена атрибуты выбранного тега, чьи значения нужно прочитать. Порядок атрибутов не имеет значения относительно их фактического порядка в теге.
![]() |
|
указывает на XML-документ из которого нужно извлечь информацию. Это может быть одно из следующих:
SCIHOME+'/XConfiguration.xml'
.XMLdoc
, возвращаемой
ранее в качестве внешней инструкции xmlRead(XMLsource)
,матрица строковых значений: значения выбранных атрибутов выбранного тега:
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.
Далее приведены примеры. Если путь исползует промежуточный или конечный тег, который
не существует, или, если один из ряда атрибутов не существует, то выдаётся ошибка.
Ваши интернет- и прокси-настройки для 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), требуемый код должен быть:
Пример 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
Version | Description |
6.0.2 | Введена xmlGetValues(), которая раньше была getPreferencesValue(). |