이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
xmlImportOptions
설명
XMLImportOptions
객체를 사용하면 MATLAB®이 XML 파일에서 구조화된 테이블 형식 데이터를 가져오는 방법을 지정할 수 있습니다. 이 객체는 누락된 데이터나 오류를 처리하는 속성과 데이터 가져오기 프로세스를 제어하는 속성을 가집니다.
생성
XMLImportOptions
객체는 여기에서 설명하는 xmlImportOptions
함수를 사용하거나 detectImportOptions
함수를 사용하여 만들 수 있습니다.
xmlImportOptions
를 사용하면 가져오기 요구 사항을 기반으로 가져오기 속성을 정의할 수 있습니다.detectImportOptions
를 사용하면filename
에 지정된 XML 파일의 내용을 기반으로 가져오기 속성을 감지하고 채울 수 있습니다.opts = detectImportOptions(filename)
구문
설명
입력 인수
numVars
— 변수 개수
양의 정수 스칼라
변수 개수로, 양의 정수 스칼라로 지정됩니다.
속성
변수 속성
VariableNames
— 변수 이름
문자형 벡터로 구성된 셀형 배열 | string형 배열
변수 이름으로, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. VariableNames
속성은 변수를 가져올 때 사용할 이름을 포함합니다.
데이터에 N
개 변수가 포함되어 있지만 변수 이름이 지정되지 않은 경우 VariableNames
속성은 {'Var1','Var2',...,'VarN'}
을 포함합니다.
공백과 비ASCII 문자가 포함된 변수 이름과 같이 유효하지 않은 MATLAB 식별자를 변수 이름으로 사용할 수 있도록 하려면 VariableNamingRule
의 값을 'preserve'
로 설정하십시오.
예: opts.VariableNames
는 현재(감지된) 변수 이름을 반환합니다.
예: opts.VariableNames(3) = {'Height'}
는 세 번째 변수의 이름을 Height
로 변경합니다.
데이터형: char
| string
| cell
VariableNamingRule
— 변수 이름을 유지할지 지정하는 플래그
"modify"
(디폴트 값) | "preserve"
변수 이름을 유지할지 지정하는 플래그로, "modify"
또는 "preserve"
중 하나로 지정됩니다.
"modify"
— 유효하지 않은 변수 이름(유효 여부는isvarname
함수의 판정에 따름)을 유효한 MATLAB 식별자로 변환합니다."preserve"
— 공백과 비ASCII 문자가 포함된 변수 이름과 같이 MATLAB 식별자로 유효하지 않은 변수 이름을 그대로 유지합니다.
R2019b부터 변수 이름과 행 이름에 공백, 비ASCII 문자 등 모든 문자를 사용할 수 있습니다. 또한 영문자뿐만 아니라 어떤 문자로도 시작할 수 있습니다. 변수 이름과 행 이름은 유효한 MATLAB 식별자(유효 여부는 isvarname
함수의 판정에 따름)가 아니어도 됩니다. 변수 이름과 행 이름을 그대로 유지하려면 VariableNamingRule
의 값을 "preserve"
로 설정하십시오. VariableNamingRule
의 값이 "modify"
에서 "preserve"
로 변경될 때 변수 이름은 새로 고쳐지지 않습니다.
데이터형: char
| string
VariableTypes
— 변수의 데이터형
문자형 벡터로 구성된 셀형 배열 | string형 배열
변수의 데이터형으로, 유효한 데이터형 이름을 포함하는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. VariableTypes
속성은 변수를 가져올 때 사용할 데이터형을 지정합니다.
VariableTypes
속성을 업데이트하려면 setvartype
함수를 사용하십시오.
예: opts.VariableTypes
는 현재 변수 데이터형을 반환합니다.
예: opts = setvartype(opts,'Height',{'double'})
은 변수 Height
의 데이터형을 double
로 변경합니다.
SelectedVariableNames
— 가져올 변수의 서브셋
문자형 벡터 | string형 스칼라 | 문자형 벡터로 구성된 셀형 배열 | string형 배열 | 숫자형 인덱스로 구성된 배열
가져올 변수의 서브셋으로, 문자형 벡터, string형 스칼라, 문자형 벡터로 구성된 셀형 배열, string형 배열 또는 숫자형 인덱스로 구성된 배열로 지정됩니다.
SelectedVariableNames
는 VariableNames
속성에 포함된 이름의 서브셋이어야 합니다. 기본적으로, SelectedVariableNames
는 VariableNames
속성의 모든 변수 이름을 포함합니다. 즉, 모든 변수를 가져옵니다.
원하는 변수만 가져오려면 SelectedVariableNames
속성을 사용하십시오. 변수의 서브셋만 가져오려면 SelectedVariableNames
속성을 사용하여 서브셋을 지정하고 readtable
을 사용하십시오.
공백과 비ASCII 문자가 포함된 변수 이름과 같이 유효하지 않은 MATLAB 식별자를 변수 이름으로 사용할 수 있도록 하려면 VariableNamingRule
의 값을 'preserve'
로 설정하십시오.
예: opts.SelectedVariableNames = {'Height','LastName'}
은 가져오기 작업에 두 개의 변수 Height
와 LastName
만 선택합니다.
예: opts.SelectedVariableNames = [1 5]
는 가져오기 작업에 두 개의 변수, 즉 첫 번째 변수와 다섯 번째 변수만 선택합니다.
예: T = readtable(filename,opts)
는 opts
객체의 SelectedVariableNames
속성에 지정된 변수만 포함하는 테이블을 반환합니다.
데이터형: uint16
| uint32
| uint64
| char
| string
| cell
VariableOptions
— 유형별 변수 가져오기 옵션
variable import options 객체로 구성된 배열
유형별 변수 가져오기 옵션으로, variable import options 객체로 구성된 배열로 반환됩니다. 이 배열은 VariableNames
속성에 지정된 각 변수에 대응되는 객체를 포함합니다. 배열에 포함된 각 객체는 해당 데이터형 데이터를 가져오는 데 필요한 속성을 포함합니다.
변수 옵션은 숫자, 텍스트, logical
, datetime
, 또는 categorical
데이터형을 지원합니다.
변수에 대한 현재(또는 감지된) 옵션을 쿼리하려면 getvaropts
함수를 사용하십시오.
변수에 대해 옵션을 설정하고 사용자 지정하려면 setvaropts
함수를 사용하십시오.
예: opts.VariableOptions
는 VariableImportOptions
객체의 모음을 반환합니다. 모음에 포함된 각 객체는 데이터의 각 변수에 대응됩니다.
예: getvaropts(opts,'Height')
는 Height
변수에 대한 VariableImportOptions
객체를 반환합니다.
예: opts = setvaropts(opts,'Height','FillValue',0)
은 변수 Height
의 FillValue
속성을 0
으로 설정합니다.
VariableDescriptionsSelector
— 변수 설명 XPath 표현식
문자형 벡터 | string형 스칼라
변수 설명 XPath 표현식으로, 읽기 함수가 테이블 변수 설명을 선택하는 데 사용하는 문자형 벡터 또는 string형 스칼라로 지정됩니다. 유효한 XPath 버전 1.0 표현식으로 VariableDescriptionsSelector
를 지정해야 합니다.
예: 'VariableDescriptionsSelector','/RootNode/ChildNode'
VariableSelectors
— 테이블 변수 XPath 표현식
문자형 벡터로 구성된 셀형 배열 | string형 배열
테이블 변수 XPath 표현식으로, 읽기 함수가 테이블 변수를 선택하는 데 사용하는 문자형 벡터의 셀형 배열 또는 string형 배열로 지정됩니다. 유효한 XPath 버전 1.0 표현식으로 VariableSelectors
를 지정해야 합니다.
예: 'VariableSelectors',{'/RootNode/ChildNode'}
예: 'VariableSelectors',"/RootNode/ChildNode"
예: 'VariableSelectors',["/RootNode/ChildNode1","/RootNode/ChildNode2"]
VariableUnitsSelector
— 변수 단위 XPath 표현식
문자형 벡터 | string형 스칼라
변수 단위 XPath로, 읽기 함수가 테이블 변수 단위를 선택하는 데 사용하는 문자형 벡터 또는 string형 스칼라로 지정됩니다. 유효한 XPath 버전 1.0 표현식으로 VariableUnitsSelector
를 지정해야 합니다.
예: 'VariableUnitsSelector','/RootNode/ChildNode'
테이블 속성
RowNamesSelector
— 테이블 행 이름 XPath 표현식
문자형 벡터 | string형 스칼라
테이블 행 이름 XPath 표현식으로, 읽기 함수가 테이블 행의 이름을 선택하는 데 사용하는 문자형 벡터 또는 string형 스칼라로 지정됩니다. 유효한 XPath 버전 1.0 표현식으로 RowNamesSelector
를 지정해야 합니다.
예: 'RowNamesSelector','/RootNode/ChildNode'
RowSelector
— 테이블 행 XPath 표현식
문자형 벡터 | string형 스칼라
테이블 행 XPath 표현식으로, 읽기 함수가 출력 테이블의 개별 행을 선택하는 데 사용하는 문자형 벡터 또는 string형 스칼라로 지정됩니다. 유효한 XPath 버전 1.0 표현식으로 RowSelector
를 지정해야 합니다.
예: 'RowSelector','/RootNode/ChildNode'
TableSelector
— 테이블 데이터 XPath 표현식
문자형 벡터 | string형 스칼라
테이블 데이터 XPath 표현식으로, 읽기 함수가 출력 테이블 데이터를 선택하는 데 사용하는 문자형 벡터 또는 string형 스칼라로 지정됩니다. 유효한 XPath 버전 1.0 표현식으로 TableSelector
를 지정해야 합니다.
예: 'TableSelector','/RootNode/ChildNode'
RegisteredNamespaces
— 등록된 XML 네임스페이스 접두사 집합
string형 배열
등록된 XML 네임스페이스 접두사의 집합으로, RegisteredNamespaces
및 접두사 배열이 쉼표로 구분되어 지정됩니다. 읽기 함수는 XML 파일에서 XPath 표현식을 실행할 때 이러한 접두사를 사용합니다. 네임스페이스 접두사 및 관련 URL을 Nx2 string형 배열로 지정합니다. RegisteredNamespaces
는 readstruct
용 StructSelector
또는 readtable
및 readtimetable
용 VariableSelectors
와 같이 선택자 이름-값 인수로 지정된 XPath 표현식을 실행할 때 사용할 수 있습니다.
기본적으로, 읽기 함수는 XPath 실행에 사용하기 위해 등록할 네임스페이스 접두사를 자동으로 감지합니다. 그러나 사용자가 RegisteredNamespaces
이름-값 인수를 사용하여 새 네임스페이스 접두사를 등록할 수도 있습니다. XML 노드에 네임스페이스 URL이 있지만 XML 파일에 선언된 네임스페이스 접두사가 없는 경우 새 네임스페이스 접두사를 등록할 수 있습니다.
예를 들어, 네임스페이스 접두사가 포함되지 않은 example.xml
이라는 XML 파일에서 XPath 표현식을 실행해 보겠습니다. 'RegisteredNamespaces'
를 ["myprefix", "https://www.mathworks.com"]
으로 지정하여 URL https://www.mathworks.com
에 접두사 myprefix
를 할당합니다.
T = readtable("example.xml", "VariableSelector", "/myprefix:Data",... "RegisteredNamespaces", ["myprefix", "https://www.mathworks.com"])
예: 'RegisteredNamespaces',["myprefix", "https://www.mathworks.com"]
대체 규칙
MissingRule
— 누락된 데이터를 관리하는 방법
'fill'
(디폴트 값) | 'error'
| 'omitrow'
| 'omitvar'
누락된 데이터를 관리하는 방법으로, 다음 표에 있는 값 중 하나로 지정됩니다.
누락 규칙 | 동작 |
---|---|
'fill' | 누락된 데이터를
|
'error' | 가져오기를 중지하고 누락된 레코드와 필드를 보여주는 오류 메시지를 표시합니다. |
'omitrow' | 누락된 데이터가 포함된 행을 생략합니다. |
'omitvar' | 누락된 데이터가 포함된 변수를 생략합니다. |
예: opts.MissingRule = 'omitrow';
데이터형: char
| string
ImportErrorRule
— 가져오기 오류를 처리하는 절차
'fill'
(디폴트 값) | 'error'
| 'omitrow'
| 'omitvar'
가져오기 오류를 처리하는 절차로, 다음 표에 있는 값 중 하나로 지정됩니다.
가져오기 오류 규칙 | 동작 |
---|---|
'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 파일용 XML 가져오기 옵션을 생성하고, 가져올 변수를 지정한 다음 데이터를 읽어 들입니다.
XML 파일 students.xml
에는 Student
라는 이름의 형제 노드 4개가 있으며 각 노드에는 동일한 자식 노드와 특성이 포함되어 있습니다.
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]
options 객체와 함께 readtable
을 사용하여 지정된 변수를 가져옵니다.
T = readtable("students.xml",opts)
T=7×1 table
Var1
__________
{'Priya' }
{'Conor' }
{'Morgan'}
{'Salim' }
{'Salim' }
{'Dania' }
{'Rikki' }
사용자 지정 XML 네임스페이스 접두사 등록하기
RegisteredNamespaces
이름-값 인수를 사용하여 입력 파일의 기존 네임스페이스 URL에 사용자 지정 XML 네임스페이스 접두사를 등록합니다.
XML 파일에서 XMLImportOptions
객체를 만듭니다. Street
요소 노드의 XPath 표현식을 'VariableSelectors'
의 값으로 지정하고 Street
노드에 속한 URL에 접두사 myPrefix
를 등록합니다.
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"]
options 객체와 함께 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 선택기를 사용하여 XML 입력 문서의 어느 요소를 가져올지 지정합니다. 예를 들어, 다음의 구조를 갖는 XML 파일
myFile.xml
을 가져오고자 한다고 가정하겠습니다.이 테이블은 XPath 선택기 이름-값 인수(예:<data> <table category="ones"> <var>1</var> <var>2</var> </table> <table category="tens"> <var>10</var> <var>20</var> </table> </data>
VariableSelectors
또는TableSelector
)에 지원되는 XPath 구문을 제공합니다.선택 작업 구문 예 결과 문서에서의 위치에 관계없이 선택하려는 노드와 이름이 일치하는 모든 노드를 선택합니다. 이름 앞에 두 개의 슬래시( //
)를 붙입니다.data = readtable('myFile.xml', 'VariableSelectors', '//var')
data = 4×1 table var ___ 1 2 10 20
요소 노드에 속한 특성 값을 읽어 들입니다. 특성 앞에 골뱅이 기호( @
)를 붙입니다.data = readtable('myFile.xml', 'VariableSelectors', '//table/@category')
data = 2×1 table categoryAttribute _________________ "ones" "tens"
노드 세트에서 특정 노드를 선택합니다. 대괄호( []
) 안에 선택하고자 하는 노드 인덱스를 제공합니다.data = readtable('myFile.xml', 'TableSelector', '//table[1]')
data = 2×1 table var ___ 1 2
연산 우선 순위를 지정합니다. 먼저 평가할 표현식을 괄호로 묶습니다. data = readtable('myFile.xml', 'VariableSelectors', '//table/var[1]')
data = 2×1 table var ___ 1 10
data = readtable('myFile.xml', 'VariableSelectors', '(//table/var)[1]')
data = table var ___ 1
버전 내역
R2021a에 개발됨
참고 항목
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 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)