writestruct
说明
示例
将结构体写入 XML 文件
基于包含 XML 结构体的文本文件创建一个结构体,然后再将该结构体写入一个 XML 文件。
文件 music.txt
具有以下结构。
将文本文件 music.txt
读取为结构体 S
。将 'FileType'
指定为 'xml'
,以将输入的内容作为 XML 文件读取。
S = readstruct("music.txt","FileType","xml")
S = struct with fields:
Ensemble: [1x1 struct]
Musicians: [1x1 struct]
将 S
写入名为 band.xml
的 XML 文件。显示 band.xml
的内容。
writestruct(S,"band.xml") type band.xml
<?xml version="1.0" encoding="UTF-8"?> <struct> <Ensemble> <Music>Jazz</Music> <BandName>Kool Katz</BandName> <Instrumentation> <Instrument type="wind"> <Text>Trumpet</Text> </Instrument> <Instrument type="percussion"> <Text>Piano</Text> </Instrument> <Instrument type="percussion"> <Text>Drums</Text> </Instrument> <Instrument type="string"> <Text>Bass</Text> </Instrument> <pianotype>concert grand</pianotype> <drumkit>Bass drum</drumkit> <drumkit>Floor tom</drumkit> <drumkit>Snare drum</drumkit> <drumkit>Hi-hat</drumkit> <drumkit>Ride cymbal</drumkit> <basstype>upright</basstype> </Instrumentation> </Ensemble> <Musicians> <Name role="trumpeter"> <Text>Miles</Text> </Name> <Name role="vocalist"> <Text>Roger</Text> </Name> <Name role="pianist"> <Text>Diana</Text> </Name> <Name role="drummer"> <Text>George</Text> </Name> <Name role="bassist"> <Text>John</Text> </Name> </Musicians> </struct>
指定输出文件中的根节点
将文件 music.xml
文件作为结构体 S
读取。
S = readstruct("music.xml")
S = struct with fields:
Ensemble: [1x1 struct]
Musicians: [1x1 struct]
将 S
写入名为 band.xml
的 XML 文件。将根节点命名为 JazzBand
。显示 band.xml
的内容。
writestruct(S,"band.xml","StructNodeName","JazzBand") type band.xml
<?xml version="1.0" encoding="UTF-8"?> <JazzBand> <Ensemble> <Music>Jazz</Music> <BandName>Kool Katz</BandName> <Instrumentation> <Instrument type="wind"> <Text>Trumpet</Text> </Instrument> <Instrument type="percussion"> <Text>Piano</Text> <pianotype>concert grand</pianotype> </Instrument> <Instrument type="percussion"> <Text>Drums</Text> <drumkit>Bass drum</drumkit> <drumkit>Floor tom</drumkit> <drumkit>Snare drum</drumkit> <drumkit>Hi-hat</drumkit> <drumkit>Ride cymbal</drumkit> </Instrument> <Instrument type="string"> <Text>Bass</Text> <basstype>upright</basstype> </Instrument> </Instrumentation> </Ensemble> <Musicians> <Name role="trumpeter"> <Text>Miles</Text> </Name> <Name role="vocalist"> <Text>Roger</Text> </Name> <Name role="pianist"> <Text>Diana</Text> </Name> <Name role="drummer"> <Text>George</Text> </Name> <Name role="bassist"> <Text>John</Text> </Name> </Musicians> </JazzBand>
指定属性后缀
指定输入结构体中要作为属性写入输出 XML 文件的字段名称。
将文件 music.xml
文件作为结构体 S
读取。将后缀 "_att"
追加到与输入 XML 文件中的属性对应的输出结构体的字段名称之后。
S = readstruct("music.xml", "AttributeSuffix", "_att")
S = struct with fields:
Ensemble: [1x1 struct]
Musicians: [1x1 struct]
S
中所有具有关联属性的元素的属性名称后都会追加后缀 "_att"
。
查询字段 Musicians
以查看其内容。Musicians
是一个包含五个结构体的结构体,其中每个结构体都包含一个名为 Name
的字段以及一个名为 role
的关联属性。
S.Musicians.Name
ans=1×5 struct array with fields:
role_att
Text
将 S
写入名为 band.xml
的 XML 文件并显示其内容。后缀 "_att"
已追加到文件中的属性名称。
writestruct(S,"band.xml") type band.xml
<?xml version="1.0" encoding="UTF-8"?> <struct> <Ensemble> <Music>Jazz</Music> <BandName>Kool Katz</BandName> <Instrumentation> <Instrument> <type_att>wind</type_att> <Text>Trumpet</Text> </Instrument> <Instrument> <type_att>percussion</type_att> <Text>Piano</Text> <pianotype>concert grand</pianotype> </Instrument> <Instrument> <type_att>percussion</type_att> <Text>Drums</Text> <drumkit>Bass drum</drumkit> <drumkit>Floor tom</drumkit> <drumkit>Snare drum</drumkit> <drumkit>Hi-hat</drumkit> <drumkit>Ride cymbal</drumkit> </Instrument> <Instrument> <type_att>string</type_att> <Text>Bass</Text> <basstype>upright</basstype> </Instrument> </Instrumentation> </Ensemble> <Musicians> <Name> <role_att>trumpeter</role_att> <Text>Miles</Text> </Name> <Name> <role_att>vocalist</role_att> <Text>Roger</Text> </Name> <Name> <role_att>pianist</role_att> <Text>Diana</Text> </Name> <Name> <role_att>drummer</role_att> <Text>George</Text> </Name> <Name> <role_att>bassist</role_att> <Text>John</Text> </Name> </Musicians> </struct>
writestruct(S,"band.xml","AttributeSuffix","_att")
再次将结构体 S
写入 XML 文件,这次将 "AttributeSuffix"
的值指定为 "_att"
,以指示输入结构体中的哪些字段名称要作为属性写入。显示 band.xml
的内容。band.xml
中的属性不再有后缀 "_att"
。
type band.xml
<?xml version="1.0" encoding="UTF-8"?> <struct> <Ensemble> <Music>Jazz</Music> <BandName>Kool Katz</BandName> <Instrumentation> <Instrument type="wind"> <Text>Trumpet</Text> </Instrument> <Instrument type="percussion"> <Text>Piano</Text> <pianotype>concert grand</pianotype> </Instrument> <Instrument type="percussion"> <Text>Drums</Text> <drumkit>Bass drum</drumkit> <drumkit>Floor tom</drumkit> <drumkit>Snare drum</drumkit> <drumkit>Hi-hat</drumkit> <drumkit>Ride cymbal</drumkit> </Instrument> <Instrument type="string"> <Text>Bass</Text> <basstype>upright</basstype> </Instrument> </Instrumentation> </Ensemble> <Musicians> <Name role="trumpeter"> <Text>Miles</Text> </Name> <Name role="vocalist"> <Text>Roger</Text> </Name> <Name role="pianist"> <Text>Diana</Text> </Name> <Name role="drummer"> <Text>George</Text> </Name> <Name role="bassist"> <Text>John</Text> </Name> </Musicians> </struct>
输入参数
S
— 输入结构体
MATLAB® 结构体
输入结构体,指定为 MATLAB 结构体。结构体是使用被称为字段的数据容器将相关数据组合在一起的一种数据类型。
如果输入结构体中的一个字段包含缺失值或 NaN
,writestruct
将以空字符串形式写入该字段的内容。
有关结构体的详细信息,请参阅 struct
。
filename
— 文件名
字符向量 | 字符串标量
要写入的文件名,指定为字符向量或字符串标量。如果 filename
不存在,则写入函数会创建该文件。如果 filename
是现有文件的名称,则写入函数会覆盖它。
根据您写入的位置,filename
可以采用以下形式之一。
位置 | 形式 | ||||||||
---|---|---|---|---|---|---|---|---|---|
当前文件夹 | 要写入当前文件夹,请在 示例: | ||||||||
其他文件夹 | 要写入不同于当前文件夹的文件夹,请在 示例: 示例: | ||||||||
远程位置 | 要写入远程位置,请指定以下形式的统一资源定位器 (URL):
根据您的远程位置,
有关详细信息,请参阅处理远程数据。 示例: |
名称-值参数
将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参数名称,Value
是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: 'StructNodeName','RootName'
指定用于输出 XML 文件的根节点的名称。
FileType
— 文件类型
'auto'
(默认) | 'xml'
文件类型,指定为以逗号分隔的对组,该对组由 'FileType'
和下列值之一组成:
'auto'
- 自动检测要基于filename
中指定的扩展名写入的文件格式。'xml'
- 将结构体的内容导出为 XML 文件,而不考虑filename
中指定的文件扩展名。
如果在 filename
中指定的文件扩展名不是 .xml
,您可以将 'FileType'
的值指定为 'xml'
,以将输入结构体的内容作为 XML 写入。
示例: 'FileType','xml'
StructNodeName
— 输出 XML 文件的根节点名称
字符向量 | 字符串标量
输出 XML 文件的根节点名称,指定为以逗号分隔的对组,由 'StructNodeName'
和包含要在输出中使用的根节点名称的字符向量或字符串标量组成。如果未指定 StructNodeName
,则根节点的默认名称为 "struct"
。
示例: 'StructNodeName','RootName'
AttributeSuffix
— 属性后缀
'Attribute'
(默认) | 字符向量 | 字符串标量
属性后缀,指定为以逗号分隔的对组,由 'AttributeSuffix'
和指示输入结构体中的哪些字段名称要作为属性写入输出 XML 文件的字符向量或字符串标量组成。
例如,对于输入结构体中的字段名称 AttName_att
,您可以指定 'AttributeSuffix','_att'
来指示使用 'AttName'
作为输出 XML 文件中的属性来写出。
如果未指定
'AttributeSuffix'
,writestruct
默认将后缀为'Attribute'
的字段作为属性写入输出 XML 文件中。如果指定为
'AttributeSuffix'
的值的属性与追加到输入结构体中属性名称的后缀匹配,则该后缀会从输出 XML 文件的属性名称中删除。例如,如果指定'AttributeSuffix','_att'
,则输入结构体中名为MyField_att
的字段将对应于 XML 文件中名为MyField
的属性。
示例: 'AttributeSuffix','_att'
版本历史记录
在 R2020b 中推出
另请参阅
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)