xmlread
XML 문서 읽기 및 문서 객체 모델 노드 반환
설명
DOMnode = xmlread(은 지정한 XML 파일을 읽어 들이고 XML 파일의 구문 분석된 버전을 나타내는 Apache® Xerces-J 문서 객체를 반환합니다. filename)
DOMnode = xmlread(는 하나 이상의 이름-값 인수를 사용하여 옵션을 지정합니다. 예를 들어, XML 처리 엔진을 filename,Name=Value)XMLEngine으로 지정할 수 있습니다.
예제
샘플 XML 파일의 내용을 검토한 다음 XML 파일을 DOM(문서 객체 모델) 노드로 읽어 들입니다.
sample.xml 파일의 내용을 표시합니다.
sampleXMLfile = 'sample.xml';
type(sampleXMLfile)<productinfo> <matlabrelease>R2012a</matlabrelease> <name>Example Manager</name> <type>internal</type> <icon>ApplicationIcon.DEMOS</icon> <list> <listitem> <label>Example Manager</label> <callback>com.mathworks.xwidgets.ExampleManager.showViewer </callback> <icon>ApplicationIcon.DEMOS</icon> </listitem> </list> </productinfo>
XML 파일을 DOM 노드로 읽어 들입니다.
DOMnode = xmlread(sampleXMLfile);
XML 파일을 MATLAB® 구조체로 읽어 들이는 구문 분석 함수를 만든 다음 샘플 XML 파일을 MATLAB 작업 공간으로 읽어 들입니다.
함수 parseXML을 만들려면 이 코드를 복사하여 m 파일 parseXML.m에 붙여 넣으십시오. parseXML 함수는 XML 파일의 데이터를 Name, Attributes, Data 및 Children 필드를 포함하는 MATLAB 구조체형 배열로 구문 분석합니다.
function theStruct = parseXML(filename) % PARSEXML Convert XML file to a MATLAB structure. try tree = xmlread(filename); catch error('Failed to read XML file %s.',filename); end % Recurse over child nodes. This could run into problems % with very deeply nested trees. try theStruct = parseChildNodes(tree); catch error('Unable to parse XML file %s.',filename); end % ----- Local function PARSECHILDNODES ----- function children = parseChildNodes(theNode) % Recurse over node children. children = []; if theNode.hasChildNodes childNodes = theNode.getChildNodes; numChildNodes = childNodes.getLength; allocCell = cell(1, numChildNodes); children = struct( ... 'Name', allocCell, 'Attributes', allocCell, ... 'Data', allocCell, 'Children', allocCell); for count = 1:numChildNodes theChild = childNodes.item(count-1); children(count) = makeStructFromNode(theChild); end end % ----- Local function MAKESTRUCTFROMNODE ----- function nodeStruct = makeStructFromNode(theNode) % Create structure of node info. nodeStruct = struct( ... 'Name', char(theNode.getNodeName), ... 'Attributes', parseAttributes(theNode), ... 'Data', '', ... 'Children', parseChildNodes(theNode)); if any(strcmp(methods(theNode), 'getData')) nodeStruct.Data = char(theNode.getData); else nodeStruct.Data = ''; end % ----- Local function PARSEATTRIBUTES ----- function attributes = parseAttributes(theNode) % Create attributes structure. attributes = []; if theNode.hasAttributes theAttributes = theNode.getAttributes; numAttributes = theAttributes.getLength; allocCell = cell(1, numAttributes); attributes = struct('Name', allocCell, 'Value', ... allocCell); for count = 1:numAttributes attrib = theAttributes.item(count-1); attributes(count).Name = char(attrib.getName); attributes(count).Value = char(attrib.getValue); end end
parseXML 함수를 사용하여 샘플 파일 info.xml을 MATLAB 구조체로 구문 분석합니다.
sampleXMLfile = 'info.xml';
mlStruct = parseXML(sampleXMLfile)mlStruct = struct with fields:
Name: 'productinfo'
Attributes: [1x2 struct]
Data: ''
Children: [1x13 struct]
입력 인수
파일 이름으로, 로컬 파일의 이름 또는 URL을 포함하는 문자형 벡터 또는 string형 스칼라로 지정됩니다. Apache Xerces-J는 JAXP(Java® API for XML Processing)를 구현합니다. JAXP 함수를 사용하여 이 문서 객체를 조작합니다. Apache Xerces-J에 대한 자세한 내용은 https://xerces.apache.org/xerces-j/apiDocs/를 참조하십시오.
데이터형: char | string
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
예: d = xmlread(filename,AllowDoctype=false)는 DOCTYPE 선언을 허용하지 않음
DOCTYPE 선언 허용 여부로, 숫자형 또는 논리값 1(true) 또는 0(false)으로 지정됩니다. true로 지정되면 xmlread는 DOCTYPE 선언에 관계없이 XML 파일에 대해 출력 DOM 노드를 반환합니다. false로 지정되면 xmlread는 XML 파일이 DOCTYPE 선언을 포함하는 경우 오류를 반환합니다.
R2026a 이후
XML 처리 엔진으로, 다음 값 중 하나로 지정됩니다.
"jaxp"— 디폴트 값입니다. Java API for XML Processing을 사용하여 XML 문서를 처리합니다."maxp"– MATLAB API for XML Processing을 사용하여 XML 문서를 처리합니다."maxp"가 지정되면 반환되는 값은matlab.io.xml.dom.Document입니다.
버전 내역
R2006a 이전에 개발됨xmlread 함수를 사용하여 XML 파일을 읽어올 때 XML 처리 엔진을 MAXP(MATLAB API for XML Processing) 또는 JAXP(Java API for XML Processing)로 지정할 수 있습니다. XMLEngine 이름-값 인수를 각각 "maxp" 또는 "jaxp"로 지정하십시오.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- 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)