Настройки импорта возражают для XML-файлов
XMLImportOptions
объект позволяет вам задать, как MATLAB® импортирует структурированный, табличные данные от XML-файлов. Объект содержит свойства, которые управляют процессом импорта данных, включая обработку ошибок и недостающих данных.
Можно создать XMLImportOptions
объект с помощью любого xmlImportOptions
функция (описанный здесь) или detectImportOptions
функция:
Используйте xmlImportOptions
задавать свойства импорта на основе ваших требований импорта.
Используйте detectImportOptions
обнаружить и заполнить свойства импорта на основе содержимого XML-файла, заданного в filename
.
opts = detectImportOptions(filename)
opts = xmlImportOptions
создает XMLImportOptions
объект с одной переменной.
opts = xmlImportOptions('NumVariables',
создает объект с количеством переменных, заданных в numVars
)numVars
.
opts = xmlImportOptions(___,
задает дополнительные свойства для Name,Value
)XMLmportOptions
объект с помощью одного или нескольких аргументов значения имени.
numVars
— Количество переменныхКоличество переменных в виде положительного скалярного целого числа.
VariableNames
Имена переменныхИмена переменных в виде массива ячеек из символьных векторов или массива строк. VariableNames
свойство содержит имена, чтобы использовать при импорте переменных.
Если данные содержат N
переменные, но никакие имена переменных заданы, затем VariableNames
свойство содержит {'Var1','Var2',...,'VarN'}
.
Чтобы поддержать недопустимые идентификаторы MATLAB как, имена переменных, такие как имена переменных, содержащие пробелы и символы non-ASCII, устанавливают значение VariableNamingRule
к 'preserve'
.
Пример: opts.VariableNames
возвращает текущие (обнаруженные) имена переменных.
Пример: opts.VariableNames(3) = {'Height'}
изменяет название третьей переменной к Height
.
Типы данных: char |
string
| cell
VariableNamingRule
— Отметьте, чтобы сохранить имена переменных'modify'
(значение по умолчанию) | 'preserve'
Отметьте, чтобы сохранить имена переменных в виде разделенной запятой пары, состоящей из VariableNamingRule
и любой 'modify'
или 'preserve'
.
'modify'
— Преобразуйте недопустимые имена переменных (как определено isvarname
функция) к допустимым идентификаторам MATLAB.
'preserve'
— Сохраните имена переменных, которые не являются допустимыми идентификаторами MATLAB, такими как имена переменных, которые включают символы non-ASCII и пробелы.
Начиная в R2019b, имена переменных и имена строки могут включать любые символы, включая символы non-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 как, имена переменных, такие как имена переменных, содержащие пробелы и символы non-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
как допустимое выражение версии 1.0 XPath.
Пример: 'VariableDescriptionsSelector','/RootNode/ChildNode'
VariableSelectors
— Выражения XPath табличной переменнойВыражения XPath табличной переменной в виде массива ячеек из символьных векторов или массива строк, что чтение функционирует использование, чтобы выбрать табличные переменные. Необходимо задать VariableSelectors
как допустимые выражения версии 1.0 XPath.
Пример: 'VariableSelectors',{'/RootNode/ChildNode'}
Пример: 'VariableSelectors',"/RootNode/ChildNode"
Пример: 'VariableSelectors',["/RootNode/ChildNode1","/RootNode/ChildNode2"]
VariableUnitsSelector
— Переменное модульное выражение XPathПеременный модульный XPath в виде вектора символов или строкового скаляра, что чтение функционирует использование, чтобы выбрать модули табличной переменной. Необходимо задать VariableUnitsSelector
как допустимое выражение версии 1.0 XPath.
Пример: 'VariableUnitsSelector','/RootNode/ChildNode'
RowNamesSelector
— Строка таблицы называет выражение XPathСтрока таблицы называет выражение XPath в виде вектора символов или строкового скаляра, что чтение функционирует использование, чтобы выбрать имена строк таблицы. Необходимо задать RowNamesSelector
как допустимое выражение версии 1.0 XPath.
Пример: 'RowNamesSelector','/RootNode/ChildNode'
RowSelector
— Выражение XPath строки таблицыВыражение XPath строки таблицы в виде вектора символов или строкового скаляра, что чтение функционирует использование, чтобы выбрать отдельные строки выходной таблицы. Необходимо задать RowSelector
как допустимое выражение версии 1.0 XPath.
Пример: 'RowSelector','/RootNode/ChildNode'
TableSelector
— Табличное выражение XPath данныхТабличное выражение XPath данных в виде вектора символов или строкового скаляра, что чтение функционирует использование, чтобы выбрать выходные табличные данные. Необходимо задать TableSelector
как допустимое выражение версии 1.0 XPath.
Пример: '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'
Процедура, чтобы управлять недостающими данными в виде одного из значений в этой таблице.
MissingRule | Поведение |
---|---|
'fill' | Замените недостающие данные на содержимое
|
'error' | Прекратите импортировать и отобразите сообщение об ошибке, показывающее недостающую запись и поле. |
'omitrow' | Не используйте строки, которые содержат недостающие данные. |
'omitvar' | Не используйте переменные, которые содержат недостающие данные. |
Пример: opts.MissingRule = 'omitrow';
Типы данных: char |
string
ImportErrorRule
— Процедура, чтобы обработать ошибки импорта'fill'
(значение по умолчанию) | 'error'
| 'omitrow'
| 'omitvar'
Процедура, чтобы обработать ошибки импорта в виде одного из значений в этой таблице.
ImportErrorRule | Поведение |
---|---|
'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
наряду с опциями возражают, чтобы импортировать заданную переменную.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.