Настройки импорта объект для XML- Файлы
Система координат XMLImportOptions позволяет вам задать, как MATLAB® импортирует структурированные табличные данные из XML- файлов. Объект содержит свойства, которые управляют процессом импорта данных, включая обработку ошибок и недостающих данных.
Можно создать XMLImportOptions объект, использующий либо xmlImportOptions функцию (описанную здесь) или detectImportOptions функция:
Использование xmlImportOptions для определения свойств импорта на основе ваших требований к импорту.
Использование detectImportOptions обнаружение и заполнение свойств импорта на основе содержимого XML- файла, заданного в filename.
opts = detectImportOptions(filename)
opts = xmlImportOptions создает XMLImportOptions объект с одной переменной.
opts = xmlImportOptions('NumVariables', создает объект с количеством переменных, заданным в numVars)numVars.
numVars - Количество переменныхКоличество переменных, заданное как положительное скалярное целое число.
VariableNames - Имена переменныхИмена переменных, заданные как массив ячеек из векторов символов или строковых массивов. The 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 function) для действительных идентификаторов MATLAB.
'preserve' - Сохраните имена переменных, которые не являются допустимыми идентификаторами MATLAB, такими как имена переменных, которые включают пространства и символы, отличные от ASCII.
Начиная с R2019b, имена переменных и имена строк могут включать любые символы, включая пространства и символы, отличные от ASCII. Кроме того, они могут начинаться с любых символов, а не только букв. Переменная и имена строк не должны быть допустимыми идентификаторами MATLAB (как определяется isvarname функция). Чтобы сохранить эти имена переменных и имена строк, задайте значение VariableNamingRule на 'preserve'.
Типы данных: char | string
VariableTypes - Типы данных переменнойТип данных переменной, заданный как массив ячеек из векторов символов или строковые массивы, содержащий набор допустимых имен типов данных. The 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' | Замените отсутствующие данные на содержимое The |
'error' | Остановите импорт и отобразите сообщение об ошибке, показывающее отсутствующие запись и поле. |
'omitrow' | Опускать строки, которые содержат отсутствующие данные. |
'omitvar' | Опускайте переменные, которые содержат отсутствующие данные. |
Пример: opts.MissingRule = 'omitrow';
Типы данных: char | string
ImportErrorRule - Процедура обработки ошибок импорта'fill' (по умолчанию) | 'error' | 'omitrow' | 'omitvar'Процедура обработки ошибок импорта, заданная как одно из значений в этой таблице.
| Правило импорта ошибок | Поведение |
|---|---|
'fill' | Замените данные, в которых произошла ошибка, содержимым The |
'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 наряду с объектом опции для импорта указанной переменной.
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 функция вместе с объектом опции для импорта выбранной переменной.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.