主要内容

readstruct

从文件创建结构

    描述

    例子

    年代=阅读(文件名通过从文件中读取结构化数据来创建结构。输入文件必须包含格式良好的XML结构。

    readstruct自动检测输入文件中内容的数据类型。

    例子

    年代=阅读(文件名名称,值使用由一个或多个名称-值对参数指定的附加选项从文件创建结构。例如,可以将输入文件的内容读取为XML,当文件扩展名为文件名不是. xml通过调用s =阅读(文件名,'filetype','xml')

    例子

    全部折叠

    将XML文件读为结构,从结构中创建变量,并查询其内容。

    文件music.xml有以下结构。

    music.xml作为一个结构年代.该结构包含一个父节点Musicyensemble.它有两个兄弟节点,合奏音乐家

    s =阅读(“music.xml”
    S =结构体字段:乐师:[1x1 struct]

    创建一个变量乐队来自第一个兄弟节点。乐队有三个字段,其中一个是名为仪器

    频段= s.ensemble.
    频段=结构体字段:音乐:“爵士”乐队名称:“库尔·卡茨”

    查询仪器乐队查看其内容。

    Band.Instrumentation.
    ans =结构体字段:仪器(1 x4结构):

    创建一个变量音乐家来自第二个兄弟节点。音乐家有一个字段叫做名称,其中包含五个结构。

    音乐家= S.Musicians.
    音乐家=结构体字段:名称:[1x5 struct]

    从不包含统一结构数据的XML文件创建结构,然后显示其内容。

    如果兄弟节点包含其他兄弟节点没有的字段,readstruct返回丢失的在其他节点中没有找到的字段。例如,在文件中music.xml, 第二乐器Node包含一个非空字段钢琴.既然其他乐器节点没有指定的值钢琴readstruct返回丢失的钢琴在那些情况下乐器节点。

    阅读XML文件music.xml一个结构年代

    s =阅读(“music.xml”
    S =结构体字段:乐师:[1x1 struct]

    查询仪器结构在s中查看其内容。

    s.ensemble.instrumentation.instrument.
    ans =1×4 struct数组与字段:Typeattribute文本钢琴Dramkit Basstype

    读取文本文件作为结构。

    文件music.txt有以下结构。

    读取文本文件music.txt作为一个结构年代.指定“文件类型”作为'XML'读取作为XML文件的输入内容。

    s =阅读(“music.txt”“文件类型”“xml”
    S =结构体字段:乐师:[1x1 struct]

    属性从输入文件中的特定元素节点创建结构“StructNodeName”名称值对。

    阅读仪器从XML文件music.xml

    s =阅读(“music.xml”“StructNodeName”“仪器”
    S =结构体字段:仪器(1 x4结构):

    指定准确的XML元素节点,在该节点下开始读取输入文件中的结构。

    读了第五个名称XML文件中的元素music.xml.将元素节点的完整XPath表达式指定为值'structSelector'

    s =阅读(“music.xml”“StructSelector”“/ MusicalEnsemble /音乐家的名字[5]”
    S =结构体字段:角色属性:“贝斯手”文本:“约翰”

    属性将自定义XML名称空间前缀注册到输入文件中的现有名称空间URL注册NameSpaces.名称-值参数。

    读第二篇元素节点作为结构,指定值'structSelector'作为'//学生[2] /地址/ myprefix:Street'它的价值注册NameSpaces.作为[" myPrefix ", " //www.tatmou.com ")

    s =阅读(“students.xml”“RegisteredNamespaces”,[“myprefix”“//www.tatmou.com”],......“StructSelector”'//学生[2] /地址/ myprefix:Street'
    S =结构体字段:xmlnsattribute:“//www.tatmou.com”文字:“4641珍珠街”

    输入参数

    全部折叠

    要读取的文件名称,指定为字符向量或字符串标量。

    根据您的文件的位置,文件名可以采取其中一种形式。

    地点

    形式

    当前文件夹或MATLAB上的文件夹®路径

    中指定文件的名称文件名

    例子:“myFile.xml”

    文件夹中的文件

    如果文件不在当前文件夹或MATLAB路径上的某个文件夹中,则在文件名

    例子:'c:\ myfolder \ myfile.xml'

    例子:'datadir \ myfile.xml'

    互联网网址

    如果文件指定为Internet统一资源定位器(URL),则文件名必须包含协议类型'http://'或者“https://”

    例子:“http://hostname/path_to_file/my_data.xml”

    远程位置

    如果文件存储在远程位置,那么文件名必须包含表单指定的文件的完整路径:

    scheme_name.:/ /path_to_file/my_file.ext.

    根据偏远的位置,scheme_name.可以是此表中的值之一。

    远程位置 scheme_name.
    Amazon S3™ S3.
    Windows Azure®Blob Storage. 黄金草原
    HDFS™ HDFS.

    有关更多信息,请参见使用远程数据

    例子:'s3://bucketname/path_to_file/my_setup.xml'

    名称-值对的观点

    指定可选的逗号分隔对名称,值参数。名称参数名和价值是相应的价值。名称必须出现在引号内。您可以按如下顺序指定几个名称和值对参数Name1, Value1,…,的家

    例子:“ImportAttributes”,真的指定导入与元素节点关联的属性作为输出结构的字段。

    文件类型,指定为逗号分隔的对,由“文件类型”其中一个值是:

    • “汽车”- 从指定的扩展中自动检测输入文件的文件格式文件名

    • 'XML'—以XML格式读取输入文件的内容。

    如果文件扩展名在文件名不是. xml,可以指定的值“文件类型”作为'XML'读取输入文件的内容作为XML。

    例子:“文件类型”,“xml”

    开始XML元素,指定为逗号分隔的一对,由“StructNodeName”并且字符向量或字符串标量readstruct从指定的XML元素开始,读取输入文件中的结构。如果不指定StructNodeName,然后readstruct读取从XML文件根目录开始的结构。

    readstruct匹配名称匹配中指定的值的XML文档中的第一个节点StructNodeName

    例子:'structnodename','rootname'

    启动XML路径,指定为逗号分隔对组成'structSelector'和一个字符矢量或标量readstruct在指定路径处的元素开始的输入文件中读取该结构。的价值'structselctor'必须是有效的XPath 1.0表达式。

    导入属性,指定为逗号分隔对组成“ImportAttributes”,要么1真的)或0).如果将值指定为,然后readstruct不会将输入文件中的XML属性导入输出结构中的字段。

    例子:“ImportAttributes”,假的

    属性后缀,指定为逗号分隔的对,由“AttributeSuffix”并且是字符向量或字符串标量。readstruct将此后缀附加到与输入XML文件中的属性相对应的输出结构的所有字段名。如果不指定“AttributeSuffix”,然后readstruct默认为附加后缀“属性”到与输入XML文件中的属性对应的所有字段名。

    例子:“AttributeSuffix”、“_att”

    一组注册的XML命名空间前缀,指定为逗号分隔对组成注册NameSpaces.和一系列前缀。读取函数在XML文件上评估XPath表达式时使用这些前缀。将命名空间前缀及其关联的URL指定为NX2字符串数组。注册NameSpaces.当您还要评估选择器名称值参数指定的XPath表达式时,可以使用,例如StructSelectorreadstruct, 或者VariableSelectorsreadtableReadTimetable.

    默认情况下,读取函数自动检测要注册在XPath计算中使用的名称空间前缀,但是也可以使用注册NameSpaces.名称-值参数。当XML节点具有名称空间URL,但XML文件中没有声明的名称空间前缀时,可以注册一个新的名称空间前缀。

    例如,计算XML文件上的XPath表达式example.xml.不包含命名空间前缀。指定'注册NameSpaces'作为[" myprefix ", " //www.tatmou.com ")分配前缀MyPrefix.到网址//www.tatmou.com.

    T = readtable("example.xml", "VariableSelector", "/myprefix:Data",…“RegisteredNamespaces”,[" myprefix ", " //www.tatmou.com "])

    例子:“注册namespaces”,[“myprefix”,“//www.tatmou.com”]

    输出参数

    全部折叠

    输出结构。结构是一种数据类型,它使用称为字段的数据容器对相关数据进行分组。每个字段可以包含任何类型的数据。使用窗体的点符号访问结构中的数据structName.fieldName.有关结构的更多信息,请参阅结构体

    提示

    • XPath选择器名称-值参数支持以下XPath语法,例如金宝appRowSelector或者VariableSelector

      • 要选择名称与要选择的节点相匹配的每个节点,而不管其在文档中的位置如何,请使用“// mynode”句法。您可以使用“// mynode”要省略前面要选择的节点之前的XPath表达式。

      • 要在文件中的一个父节点下读取几个兄弟节点之一,可以指定ChildNode [n, 在哪里n对应于要索引的兄弟节点。例如,路径“/ rootnode / shordnode [2]”选择第二个ChildNode元素的父元素是RootNode

      • 要读取输入XML文件中属于元素节点的属性值,请指定在属性名称之前。例如,“/ RootNode / ChildNode [2] / @AttributeName”选择属性attributename.属于第二种ChildNode元素的父元素是RootNode

    另请参阅

    介绍了R2020b