Создайте структуру из файла
создает структуру из файла с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение". Например, можно считать содержимое входного файла как 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.