Создайте структуру из файла
создает структуру из файла с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение". Например, можно считать содержимое входного файла как XML когда расширение файла в S
= readstruct(filename
,Name,Value
)filename
не .xml
путем вызова S = readstruct(filename,'FileType','xml')
.
Считайте XML-файл как структуру, создайте переменные из структуры и запросите ее содержимое.
Файл music.xml
имеет следующую структуру.
Считайте music.xml
в MATLAB как структура S
. Эта структура содержит один родительский узел MusicalEnsemble
это имеет два одноуровневых узла, Ensemble
и Musicians
.
S = readstruct("music.xml")
S = struct with fields:
Ensemble: [1x1 struct]
Musicians: [1x1 struct]
Создайте переменную band
от первого одноуровневого узла. band
имеет три поля, одно из которых является структурой под названием Instrumentation
.
band = S.Ensemble
band = struct with fields:
Music: "Jazz"
BandName: "Kool Katz"
Instrumentation: [1x1 struct]
Запросите Instrumentation
в band
просмотреть его содержимое.
band.Instrumentation
ans = struct with fields:
Instrument: [1x4 struct]
Создайте переменную musicians
от второго одноуровневого узла. musicians
имеет одно поле под названием Name
, который содержит пять структур.
musicians = S.Musicians
musicians = struct with fields:
Name: [1x5 struct]
Создайте структуру из XML-файла, который не содержит однородно-структурированные-данные, затем показывает его содержимое.
Если одноуровневый узел содержит поля, которые другие одноуровневые узлы не имеют, readstruct
возвращает missing
для полей, которые не найдены в других узлах. Например, в файле music.xml
, второй Instrument
узел содержит непустое поле pianotype
. Начиная с другого Instrument
узлам не задали значение для pianotype
, readstruct
возвращает missing
для pianotype
под теми Instrument
узлы.
Считайте XML-файл music.xml
к структуре S
.
S = readstruct("music.xml")
S = struct with fields:
Ensemble: [1x1 struct]
Musicians: [1x1 struct]
Запросите Инструментальную структуру в S, чтобы просмотреть его содержимое.
S.Ensemble.Instrumentation.Instrument
ans=1×4 struct array with fields:
typeAttribute
Text
pianotype
drumkit
basstype
Считайте текстовый файл как структуру.
Файл music.txt
имеет следующую структуру.
Считайте текстовый файл music.txt
в MATLAB как структура S
. Задайте 'FileType'
как 'xml'
считать содержимое входа как XML-файл.
S = readstruct("music.txt","FileType","xml")
S = struct with fields:
Ensemble: [1x1 struct]
Musicians: [1x1 struct]
Создайте структуру из определенного узла элемента во входном файле при помощи 'StructNodeName'
пара "имя-значение".
Считайте Instrumentation
узел от XML-файла music.xml
.
S = readstruct("music.xml","StructNodeName","Instrumentation")
S = struct with fields:
Instrument: [1x4 struct]
Задайте точный узел элемента XML, под которым можно начать читать структуру во входном файле.
Считайте пятый Name
элемент в XML-файле music.xml
. Задайте полное выражение XPath узла элемента как значение 'StructSelector'
.
S = readstruct("music.xml","StructSelector","/MusicalEnsemble/Musicians/Name[5]")
S = struct with fields:
roleAttribute: "bassist"
Text: "John"
filename
— Имя файла, чтобы читатьИмя файла, чтобы читать в виде вектора символов или строкового скаляра.
В зависимости от местоположения вашего файла, filename
может взять одну из следующих форм.
Местоположение | Форма | ||||||||
---|---|---|---|---|---|---|---|---|---|
Текущая папка или папка на пути MATLAB® | Задайте имя файла в Пример:
| ||||||||
Файл в папке | Если файл не находится в текущей папке или в папке на пути MATLAB, то задайте полное имя или относительный путь в Пример:
Пример:
| ||||||||
Удаленное местоположение | Если файл хранится в удаленном местоположении, то задайте универсальный локатор ресурса (URL) формы:
На основе вашего удаленного местоположения,
Для получения дополнительной информации смотрите работу с Удаленными данными. Пример:
|
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'ImportAttributes',true
задает, чтобы импортировать атрибуты, сопоставленные с узлами элемента как поля структуры output.'FileType'
— Тип файла'auto'
(значение по умолчанию) | 'xml'
Тип файла в виде разделенной запятой пары, состоящей из 'FileType'
и одно из этих значений:
'auto'
— Автоматически обнаружьте формат файла входного файла от расширения, заданного в filename
.
'xml'
— Считайте содержимое входного файла как XML.
Если расширение файла в filename
не .xml
, можно задать значение 'FileType'
как 'xml'
считать содержимое входного файла как XML.
Пример: 'FileType','xml'
'StructNodeName'
— Запуск элемент XMLЗапуск элемента XML в виде разделенной запятой пары, состоящей из 'StructNodeName'
и или вектор символов или строковый скаляр readstruct
читает структуру во входном файле, начиная с заданного элемента XML. Если вы не задаете StructNodeName
, затем readstruct
читает структуру, запускающуюся в корне XML-файла.
readstruct
совпадает с первым узлом в XML-документе, имя которого совпадает со значением, заданным в StructNodeName
.
Пример: 'StructNodeName','RootName'
'StructSelector'
— Запуск пути XMLЗапуск пути XML в виде разделенной запятой пары, состоящей из 'StructSelector'
и вектор символов или строковый скаляр readstruct
читает структуру во входном файле, запускающемся в элементе в заданном пути. Значение 'StructSelctor'
должно быть допустимое выражение версии 1.0 XPath.
Чтобы считать один из нескольких одноуровневых узлов под одним родительским узлом в структуре, можно задать ChildNode[n]
, где n
соответствует одноуровневому узлу, который вы хотите индексировать. Например, путь RootNode/ChildNode[2]
выбирает второй ChildNode
элемент, родительским элементом которого является RootNode
.
Чтобы считать значение атрибута, принадлежащего узлу элемента во входном XML-файле, задайте @
перед именем атрибута. Например, RootNode/ChildNode[2]/@AttributeName
выбирает атрибут AttributeName
принадлежность второму ChildNode
элемент, родительским элементом которого является RootNode
.
'ImportAttributes'
— Импортируйте атрибуты1
или true
(значение по умолчанию) | логический 0
или false
Импортируйте атрибуты в виде разделенной запятой пары, состоящей из 'ImportAttributes'
и любой 1
TRUE
) или 0
ложь
). Если вы задаете значение как false
, затем readstruct
не импортирует атрибуты XML во входном файле как поля в структуре output.
Пример: 'ImportAttributes',false
'AttributeSuffix'
— Суффикс атрибута'Attribute'
(значение по умолчанию) | вектор символов | строковый скалярСуффикс атрибута в виде разделенной запятой пары, состоящей из 'AttributeSuffix'
и или вектор символов или строковый скаляр. readstruct
добавляет этот суффикс ко всем именам полей структуры output, которые соответствуют атрибутам во входном XML-файле. Если вы не задаете 'AttributeSuffix'
, затем readstruct
значения по умолчанию к добавлению суффиксного 'Attribute'
ко всем именам полей, соответствующим атрибутам во входном XML-файле.
Пример: 'AtributeSuffix','_att'
S
Вывод структурыВывод структуры. Структура является типом данных, что связанные с группами данные с помощью контейнеров данных вызвали поля. Каждое поле может содержать любой тип данных. Данные о доступе в структуре с помощью записи через точку формы structName.fieldName
. Для получения дополнительной информации о структурах смотрите struct
.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.