Объект параметров импорта для XML-файлов
Один XMLImportOptions позволяет указать, как MATLAB ® импортирует структурированные табличные данные из XML-файлов. Объект содержит свойства, управляющие процессом импорта данных, включая обработку ошибок и отсутствующих данных .
Можно создать XMLImportOptions с использованием либо xmlImportOptions функция (описана здесь) или detectImportOptions функция:
Использовать xmlImportOptions для определения свойств импорта на основе требований импорта.
Использовать detectImportOptions для обнаружения и заполнения свойств импорта на основе содержимого XML-файла, указанного в filename.
opts = detectImportOptions(filename)
opts = xmlImportOptions создает XMLImportOptions объект с одной переменной.
opts = xmlImportOptions('NumVariables', создает объект с числом переменных, указанным в numVars)numVars.
numVars - Количество переменныхЧисло переменных, указанное как положительное скалярное целое число.
VariableNames - Имена переменныхИмена переменных, определяемые как массив ячеек символьных векторов или строковый массив. VariableNames содержит имена, используемые при импорте переменных.
Если данные содержат N переменные, но имена переменных не указаны, затем VariableNames свойство содержит {'Var1','Var2',...,'VarN'}.
Для поддержки недопустимых идентификаторов MATLAB в качестве имен переменных, например имен переменных, содержащих пробелы и символы, отличные от ASCII, задайте значение VariableNamingRule кому 'preserve'.
Пример: opts.VariableNames возвращает имена текущих (обнаруженных) переменных.
Пример: opts.VariableNames(3) = {'Height'} изменяет имя третьей переменной на Height.
Типы данных: char | string | cell
VariableNamingRule - Флаг для сохранения имен переменных'modify' (по умолчанию) | 'preserve'Флаг для сохранения имен переменных, указанный как разделенная запятыми пара, состоящая из VariableNamingRule и либо 'modify' или 'preserve'.
'modify' - Преобразовать недопустимые имена переменных (согласно определению isvarname к допустимым идентификаторам MATLAB.
'preserve' - Сохранение имен переменных, которые не являются допустимыми идентификаторами MATLAB, например имен переменных, содержащих пробелы и символы, не относящиеся к ASCII.
Начиная с R2019b имена переменных и строк могут содержать любые символы, включая пробелы и символы, не относящиеся к ASCII. Кроме того, они могут начинаться с любых символов, а не только букв. Имена переменных и строк не должны быть допустимыми идентификаторами MATLAB (согласно определению isvarname функция). Чтобы сохранить эти имена переменных и строк, задайте значение VariableNamingRule кому 'preserve'.
Типы данных: char | string
VariableTypes - Типы данных переменнойТип данных переменной, указанный как массив ячеек символьных векторов, или строковый массив, содержащий набор допустимых имен типов данных. VariableTypes свойство определяет типы данных, используемые при импорте переменных.
Чтобы обновить VariableTypes свойство, используйте setvartype функция.
Пример: opts.VariableTypes возвращает текущие типы данных переменных.
Пример: opts = setvartype(opts,'Height',{'double'}) изменение типа данных переменной Height кому double.
SelectedVariableNames - подмножество переменных для импорта;Подмножество импортируемых переменных, указанное как символьный вектор, строковый скаляр, массив ячеек символьных векторов, строковый массив или массив числовых индексов.
SelectedVariableNames должно быть подмножеством имен, содержащихся в VariableNames собственность. По умолчанию SelectedVariableNames содержит все имена переменных из VariableNames , что означает, что все переменные импортируются.
Используйте SelectedVariableNames свойство для импорта только интересующих переменных. Укажите подмножество переменных с помощью SelectedVariableNames собственность и использование readtable для импорта только этого подмножества.
Для поддержки недопустимых идентификаторов MATLAB в качестве имен переменных, например имен переменных, содержащих пробелы и символы, отличные от ASCII, задайте значение VariableNamingRule кому 'preserve'.
Пример: opts.SelectedVariableNames = {'Height','LastName'} выбирает только две переменные, Height и LastName, для операции импорта.
Пример: opts.SelectedVariableNames = [1 5] выбирает только две переменные, первую переменную и пятую переменную, для операции импорта.
Пример: T = readtable(filename,opts) возвращает таблицу, содержащую только переменные, указанные в SelectedVariableNames имущества opts объект.
Типы данных: uint16 | uint32 | uint64 | char | string | cell
VariableOptions - Параметры импорта переменных, зависящие от типаВведите параметры импорта переменных, возвращаемые в виде массива объектов параметров импорта переменных. Массив содержит объект, соответствующий каждой переменной, указанной в VariableNames собственность. Каждый объект в массиве содержит свойства, поддерживающие импорт данных с определенным типом данных.
Параметры переменных поддерживают следующие типы данных: числовые, текстовые, logical, datetime, или categorical.
Чтобы запросить текущие (или обнаруженные) параметры переменной, используйте getvaropts функция.
Чтобы задать и настроить параметры переменной, используйте setvaropts функция.
Пример: opts.VariableOptions возвращает коллекцию VariableImportOptions объекты, по одному, соответствующие каждой переменной в данных.
Пример: getvaropts(opts,'Height') возвращает значение VariableImportOptions объект для Height переменная.
Пример: opts = setvaropts(opts,'Height','FillValue',0) устанавливает FillValue свойство для переменной Height кому 0.
VariableDescriptionsSelector - Описание переменной выражение XPathВыражение XPath описаний переменных, указанное как вектор символов или скаляр строки, используемый функцией чтения для выбора описаний переменных таблицы. Необходимо указать VariableDescriptionsSelector как допустимое выражение XPath версии 1.0.
Пример: 'VariableDescriptionsSelector','/RootNode/ChildNode'
VariableSelectors - Табличная переменная XPath-выраженияВыражения XPath табличной переменной, указанные как массив ячеек символьных векторов или строковый массив, используемый функцией чтения для выбора табличных переменных. Необходимо указать VariableSelectors как допустимые выражения XPath версии 1.0.
Пример: 'VariableSelectors',{'/RootNode/ChildNode'}
Пример: 'VariableSelectors',"/RootNode/ChildNode"
Пример: 'VariableSelectors',["/RootNode/ChildNode1","/RootNode/ChildNode2"]
VariableUnitsSelector - Выражение XPath переменных единицПеременные единицы XPath, заданные как вектор символов или скаляр строки, используемый функцией чтения для выбора табличных переменных единиц. Необходимо указать VariableUnitsSelector как допустимое выражение XPath версии 1.0.
Пример: 'VariableUnitsSelector','/RootNode/ChildNode'
RowNamesSelector - Выражение XPath имен строк таблицыСтрока таблицы называет выражение XPath, указанное как вектор символов или скаляр строки, который функция чтения использует для выбора имен строк таблицы. Необходимо указать RowNamesSelector как допустимое выражение XPath версии 1.0.
Пример: 'RowNamesSelector','/RootNode/ChildNode'
RowSelector - Выражение XPath строки таблицыВыражение XPath строки таблицы, указанное как вектор символов или скаляр строки, используемый функцией чтения для выбора отдельных строк выходной таблицы. Необходимо указать RowSelector как допустимое выражение XPath версии 1.0.
Пример: 'RowSelector','/RootNode/ChildNode'
TableSelector - Выражение XPath табличных данныхВыражение XPath табличных данных, указанное как вектор символов или скаляр строки, используемый функцией чтения для выбора данных выходной таблицы. Необходимо указать TableSelector как допустимое выражение XPath версии 1.0.
Пример: 'TableSelector','/RootNode/ChildNode'
RegisteredNamespaces - Набор зарегистрированных префиксов пространства имен XMLНабор зарегистрированных префиксов пространства имен XML, указанный как пара, разделенная запятыми, состоящая из RegisteredNamespaces и массив префиксов. Функция чтения использует эти префиксы при оценке выражений XPath в XML-файле. Укажите префиксы пространства имен и связанные с ними URL-адреса в виде массива Nx2 строк. RegisteredNamespaces может использоваться при вычислении выражения XPath, указанного аргументом «имя-значение селектора», например StructSelector для readstruct, или VariableSelectors для readtable и readtimetable.
По умолчанию функция чтения автоматически обнаруживает префиксы пространства имен для регистрации для использования в вычислении XPath, но можно также зарегистрировать новые префиксы пространства имен с помощью RegisteredNamespaces аргумент «имя-значение». Можно зарегистрировать новый префикс пространства имен, если узел XML имеет URL-адрес пространства имен, но в XML-файле нет объявленного префикса пространства имен.
Например, вычислить выражение XPath в XML-файле с именем example.xml не содержит префикс пространства имен. Определить 'RegisteredNamespaces' как [“myprefix”, “https://www.mathworks.com”] для назначения префикса myprefix на URL-адрес https://www.mathworks.com.
T = readtable("example.xml", "VariableSelector", "/myprefix:Data",...
"RegisteredNamespaces", [“myprefix”, “https://www.mathworks.com”])Пример: 'RegisteredNamespaces',[“myprefix”, “https://www.mathworks.com”]
MissingRule - Процедура управления отсутствующими данными'fill' (по умолчанию) | 'error' | 'omitrow' | 'omitvar'Процедура управления отсутствующими данными, заданными в качестве одного из значений в этой таблице.
| Отсутствующее правило | Поведение |
|---|---|
'fill' | Замените отсутствующие данные на содержимое |
'error' | Остановите импорт и выведите сообщение об ошибке с отсутствующей записью и полем. |
'omitrow' | Опустить строки, содержащие отсутствующие данные. |
'omitvar' | Опустить переменные, содержащие отсутствующие данные. |
Пример: opts.MissingRule = 'omitrow';
Типы данных: char | string
ImportErrorRule - Процедура обработки ошибок импорта'fill' (по умолчанию) | 'error' | 'omitrow' | 'omitvar'Процедура обработки ошибок импорта, указанная как одно из значений в этой таблице.
| Правило ошибки импорта | Поведение |
|---|---|
'fill' | Замените данные, в которых произошла ошибка, на содержимое |
'error' | Остановите импорт и отобразите сообщение об ошибке, содержащее запись и поле, вызывающие ошибки. |
'omitrow' | Опустить строки, в которых возникают ошибки. |
'omitvar' | Опустить переменные, в которых возникают ошибки. |
Пример: opts.ImportErrorRule = 'omitvar';
Типы данных: char | string
RepeatedNodeRule - Процедура обработки повторяющихся узлов XML'addcol' (по умолчанию) | 'ignore' | 'error'Процедура обработки повторяющихся узлов XML в данной строке таблицы, указанная как 'addcol', 'ignore', или 'error'.
Правило повторяющегося узла | Поведение |
|---|---|
'addcol' | Добавление столбцов для повторяющихся узлов под заголовком переменной в таблице. Указание значения |
'ignore' | Пропустить импорт повторяющихся узлов. |
'error' | Вывод сообщения об ошибке и прекращение операции импорта. |
Пример: 'RepeatedNodeRule','ignore'
Создайте параметры импорта XML для XML-файла, укажите переменные для импорта, а затем прочитайте данные.
XML-файл students.xml имеет четыре одноуровневых узла с именем Student, каждый из которых содержит одни и те же дочерние узлы и атрибуты.
type students.xml<?xml version="1.0" encoding="utf-8"?>
<Students>
<Student ID="S11305">
<Name FirstName="Priya" LastName="Thompson" />
<Age>18</Age>
<Year>Freshman</Year>
<Address>
<Street xmlns="https://www.mathworks.com">591 Spring Lane</Street>
<City>Natick</City>
<State>MA</State>
</Address>
<Major>Computer Science</Major>
<Minor>English Literature</Minor>
</Student>
<Student ID="S23451">
<Name FirstName="Conor" LastName="Cole" />
<Age>18</Age>
<Year>Freshman</Year>
<Address>
<Street xmlns="https://www.mathworks.com">4641 Pearl Street</Street>
<City>San Francisco</City>
<State>CA</State>
</Address>
<Major>Microbiology</Major>
<Minor>Public Health</Minor>
</Student>
<Student ID="S119323">
<Name FirstName="Morgan" LastName="Yang" />
<Age>21</Age>
<Year>Senior</Year>
<Address>
<Street xmlns="https://www.mathworks.com">30 Highland Road</Street>
<City>Detriot</City>
<State>MI</State>
</Address>
<Major>Political Science</Major>
</Student>
<Student ID="S201351">
<Name FirstName="Salim" LastName="Copeland" />
<Age>19</Age>
<Year>Sophomore</Year>
<Address>
<Street xmlns="https://www.mathworks.com">3388 Moore Avenue</Street>
<City>Fort Worth</City>
<State>TX</State>
</Address>
<Major>Business</Major>
<Minor>Japanese Language</Minor>
</Student>
<Student ID="S201351">
<Name FirstName="Salim" LastName="Copeland" />
<Age>20</Age>
<Year>Sophomore</Year>
<Address>
<Street xmlns="https://www.mathworks.com">3388 Moore Avenue</Street>
<City>Fort Worth</City>
<State>TX</State>
</Address>
<Major>Business</Major>
<Minor>Japanese Language</Minor>
</Student>
<Student ID="54600">
<Name FirstName="Dania" LastName="Burt" />
<Age>22</Age>
<Year>Senior</Year>
<Address>
<Street xmlns="https://www.mathworks.com">22 Angie Drive</Street>
<City>Los Angeles</City>
<State>CA</State>
</Address>
<Major>Mechanical Engineering</Major>
<Minor>Architecture</Minor>
</Student>
<Student ID="453197">
<Name FirstName="Rikki" LastName="Gunn" />
<Age>21</Age>
<Year>Junior</Year>
<Address>
<Street xmlns="https://www.mathworks.com">65 Decatur Lane</Street>
<City>Trenton</City>
<State>ME</State>
</Address>
<Major>Economics</Major>
<Minor>Art History</Minor>
</Student>
</Students>
Создание XMLImportOptions объект из файла. Укажите значение VariableSelectors как //@FirstName для выбора FirstName узел элемента для импорта в качестве переменной таблицы.
opts = xmlImportOptions("VariableSelectors","//@FirstName")
opts =
XMLImportOptions with properties:
Replacement Properties:
MissingRule: "fill"
ImportErrorRule: "fill"
RepeatedNodeRule: "addcol"
Variable Import Properties: Set types by name using setvartype
VariableNames: "Var1"
VariableTypes: "char"
SelectedVariableNames: "Var1"
VariableOptions: Show all 1 VariableOptions
Access VariableOptions sub-properties using setvaropts/getvaropts
VariableNamingRule: "preserve"
Location Properties:
TableSelector: <missing>
RowSelector: <missing>
VariableSelectors: "//@FirstName"
VariableUnitsSelector: <missing>
VariableDescriptionsSelector: <missing>
RowNamesSelector: <missing>
RegisteredNamespaces: [0x2 string]
Использовать readtable вместе с объектом options для импорта указанной переменной.
T = readtable("students.xml",opts)T=7×1 table
Var1
__________
{'Priya' }
{'Conor' }
{'Morgan'}
{'Salim' }
{'Salim' }
{'Dania' }
{'Rikki' }
Зарегистрируйте пользовательский префикс пространства имен XML для существующего URL пространства имен во входном файле с помощью RegisteredNamespaces аргумент «имя-значение».
Создание XMLImportOptions из XML-файла. Укажите выражение XPath Street узел элемента как значение 'VariableSelectors'и зарегистрируйте префикс myPrefix к URL, принадлежащему Street узел.
opts = detectImportOptions("students.xml","RegisteredNamespaces", ["myPrefix","https://www.mathworks.com"],... "VariableSelectors","//myPrefix:Street")
opts =
XMLImportOptions with properties:
Replacement Properties:
MissingRule: "fill"
ImportErrorRule: "fill"
RepeatedNodeRule: "addcol"
Variable Import Properties: Set types by name using setvartype
VariableNames: "Street"
VariableTypes: "string"
SelectedVariableNames: "Street"
VariableOptions: Show all 1 VariableOptions
Access VariableOptions sub-properties using setvaropts/getvaropts
VariableNamingRule: "preserve"
Location Properties:
TableSelector: <missing>
RowSelector: <missing>
VariableSelectors: "//myPrefix:Street"
VariableUnitsSelector: <missing>
VariableDescriptionsSelector: <missing>
RowNamesSelector: <missing>
RegisteredNamespaces: ["myPrefix" "https://www.mathworks.com"]
Используйте readtable вместе с объектом options для импорта выбранной переменной.
T2 = readtable("students.xml",opts)T2=7×1 table
Street
___________________
"591 Spring Lane"
"4641 Pearl Street"
"30 Highland Road"
"3388 Moore Avenue"
"3388 Moore Avenue"
"22 Angie Drive"
"65 Decatur Lane"
Следующие синтаксисы XPath поддерживаются для аргументов «имя-значение селектора XPath», таких как RowSelector или VariableSelector.
Чтобы выбрать каждый узел, имя которого соответствует выбранному узлу, независимо от его расположения в документе, используйте "//myNode" синтаксис. Вы можете использовать "//myNode" чтобы опустить выражение XPath, предшествующее узлу, который требуется выбрать.
Чтобы прочитать один из нескольких одноранговых узлов под одним родительским узлом в файле, можно указать ChildNode[, где n]n соответствует одноранговому узлу, который требуется проиндексировать. Например, путь "/RootNode/ChildNode[2]" выбирает второе ChildNode элемент, родительский элемент которого RootNode.
Чтобы считать значение атрибута, принадлежащего узлу элемента во входном XML-файле, укажите @ перед именем атрибута. Например, "/RootNode/ChildNode[2]/@AttributeName" выбирает атрибут AttributeName относится ко второму ChildNode элемент, родительский элемент которого RootNode.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.