LabVIEW에서 XML 파일 분석하기
- 업데이트 날짜:2025-08-27
- 4분 (읽기 시간)
XML(Extensible Markup Language)는 플랫폼에 독립적인 SGML(Standard Generalized Markup Language)의 일부로서, 정보를 저장하고 교환하는데 사용할 수 있습니다. XML 문서에 대한 작업을 수행하고 있을 때, 파서를 사용하여 XML 포맷을 직접 변환하지 않고도 데이터를 추출하고 조작할 수 있습니다. 예를 들어, 문서 객체 모델(DOM) Core 스펙은 XML 문서를 생성하고, 읽고, 조작하는 프로그래밍 인터페이스를 정의합니다. DOM Core 스펙은 XML 파서가 지원해야 하는 프로퍼티와 메소드를 정의합니다. LabVIEW의 XML 파서는 문서 객체 모델(DOM)을 사용하는 Xerces 2.7 파서입니다.
XML 파서 및 XML 파서 관련 VI와 노드를 사용하여 XML 문서에 대한 읽기, 쓰기, 변경 작업을 수행합니다.
다음 블록다이어그램에서 보이는 것처럼, XML 파서 VI를 통해 LabVIEW에서 플랫폼에 독립적인 XML 파서를 사용할 수 있습니다.
XML 파서 VI를 사용하는 예제는 labview\examples\File IO\XML\Parse XML 디렉토리를 참조하십시오.
관련 예제 찾기
새 VI는 XML 파서 세션을 열고 XML 문서 참조를 반환합니다. XML 문서를 생성하고, 기존 문서를 XML 파서에 로드하고, 문서 셋팅을 설정할 수 있습니다.
기본 파일을 변경하려면, 파일 로드 메소드를 사용하여 메모리에 XML 문서를 로드합니다. XML 파서가 문서 안에서 에러를 발견하여 해당 문서를 분석하지 못하는 경우를 제외하면, LabVIEW는 XML 문서에 접근할 수 있습니다. 분석 에러 출력은 이렇게 XML과 관련된 에러를 디스플레이합니다.
XML 얻기 (적절한 인쇄) 메소드를 사용하여 XML 문서의 내용을 문자열로 적절하게 인쇄합니다. 적절한 인쇄는 XML 데이터에 화이트스페이스와 라인 끝 (EOL:end-of-line) 문자를 추가해서 XML 데이터를 더욱 읽기 쉽게 만들어줍니다. XML 데이터를 적절하게 인쇄할 필요가 없는 경우에는 XML 얻기 메소드를 사용하십시오. 이전 블록다이어그램에서는, XML 출력이 XML 문서의 내용을 디스플레이합니다.
[닫기] VI는 XML 문서 참조를 닫고 VI가 발견하는 모든 에러를 반환합니다.
XML 문서 검증하기
XML 파서를 설정하여 특정 XML 문서가 유효한지 구분할 수 있습니다. 문서가 외부 언어를 따르는 경우, 해당 문서는 유효합니다. LabVIEW 파서에서, 외부 언어는 문서 타입 정의 (DTD:Document Type Definition) 또는 스키마가 될 수 있습니다.
일부 파서는 오직 XML을 분석하고, 파일을 로드하기 전에 XML을 검증하지 않습니다. LabVIEW에 있는 파서는 검증용 파서합니다. 검증용 파서는 DTD 또는 스키마와 비교하여 XML 문서를 검증하고, 발견되는 유효하지 않은 아이템을 보고합니다. 지정된 문서의 형식과 타입이 기대한 것과 같도록 확인해야 합니다. 검증용 파서를 사용하면, 각각의 문서 타입에 따라 사용자 정의 검증 코드를 생성할 필요가 없습니다.
XML 파서는 파일 로드 메소드의 분석 에러 출력에 검증 에러를 보고합니다.
| 노트 XML 파서는 LabVIEW가 문서 또는 XML 문자열을 로드할 때 해당 문서 또는 XML 문자열을 검증합니다. 문서 또는 문자열을 변경한 후 변경 사항이 반영된 문서 또는 문자열을 검증하고 싶은 경우, 파일 로드 또는 문자열 로드 메소드를 사용하여 해당 문서 또는 문자열을 다시 로드합니다. 이후 파서는 다시 그 내용을 검증하게 됩니다. |
파일 로드 메소드를 사용하는 예제는 labview\examples\File IO\XML\Parse XML 디렉토리의 Load XML with Parser API VI를 참조하십시오.
XML 파서 설정하기
사용 가능한 기능을 모두 활성화하려는 경우, XML 파서의 모든 인스턴스를 설정해야 합니다. 문서 클래스에서 프로퍼티를 설정하여 파서를 설정할 수 있습니다.
블록다이어그램에 프로퍼티 노드(XML)를 놓고 사용할 수 있는 프로퍼티를 살펴봅니다. 프로퍼티 노드(XML)은 다음의 프로퍼티와 메소드를 포함합니다:
- namespace 처리―사용자가 XML 파서 namespace 처리를 활성화 또는 비활성화할 수 있습니다. 기본은 참이며, XML 파서가 자체적인 namespace 스펙 제한 및 규칙을 따르게 됩니다.
- 스키마 처리―사용자가 XML 파서 스키마 처리를 활성화 또는 비활성화할 수 있습니다. 기본은 거짓이며, XML 파서는 어떤 스키마도 처리하지 않습니다. 이 프로퍼티를 참으로 설정하는 경우, 반드시 namespace 처리를 활성화해야 합니다.
- 외부 DTD 로드―사용자가 외부 DTD 로드를 활성화 또는 비활성화할 수 있습니다. 기본은 참이며, XML 파서에서 사용자가 외부 DTD를 로드할 수 있습니다. 로드에서 확인 프로퍼티를 항상이나 자동으로 설정한 경우, 파서는 이 프로퍼티를 무시하고 항상 DTD를 로드합니다.
- 화이트스페이스 유지―텍스트 노드로서 무시할 수 있는 화이트스페이스를 검증 파서가 포함할지 여부를 사용자가 지정할 수 있습니다. 기본은 참이며, 무시할 수 있는 화이트스페이스를 텍스트 노드로 DOM 트리에 추가합니다. 이 프로퍼티를 거짓으로 설정하는 경우, XML 파서는 무시할 수 있는 화이트스페이스를 모두 버리고 DOM 트리에 텍스트 노드를 추가하지 않습니다.

노트 XML 파서는 검증 작업을 수행할 때에만 화이트스페이스를 무시합니다. 그렇지 않은 경우, 파서는 화이트스페이스를 직하위 노드로 포함시킵니다. 예를 들어, 태그의 첫 번째 직하위는 그 다음 원소가 아닌 화이트스페이스일 가능성이 높습니다. - 스키마 전체 확인―사용자가 전체 스키마 제약 확인을 설정할 수 있습니다. 로드 시 검증 프로퍼티가 항상 또는 자동으로 설정된 경우에만 이 프로퍼티가 적용됩니다. 기본은 거짓이며, 부분적인 제약 확인을 실행합니다. 전체 스키마 제약 확인으로 인해 시간과 메모리를 많이 소요하게 될 수도 있습니다.
- 로드 시 검증―XML 파서가 사용하는 검증 방식을 사용자가 지정할 수 있습니다. 다음 열거형 값 중에서 하나를 선택할 수 있습니다:
- 자동―(기본) 파서가 내부 또는 외부 DTD 서브셋을 감지하는 경우 검증을 On 상태로 만듭니다.
- 없음―검증을 Off 상태로 만듭니다.

노트 이 프로퍼티를 없음으로 설정하고 외부 DTD 로드 프로퍼티를 참으로 설정한 경우, LabVIEW는 문서를 분석하지만 검증 에러를 반환하지는 않습니다. - 항상―검증을 On 상태로 만듭니다.
XML 파서 VI를 사용하는 예제는 labview\examples\File IO\XML\Parse XML 디렉토리를 참조하십시오.
관련 예제 찾기
XML 문서 쿼리하기
XML Path Language (XPath)는 원소, 속성, 텍스트 등의 XML 노드의 위치를 찾을 때 사용하는 언어입니다. [첫번째 일치된 노드 얻기] VI를 사용하여 사용자가 지정하는 XPath 표현식과 일치하는 첫번째 노드의 위치를 찾습니다. [모든 일치된 노드 얻기] VI를 사용하여 사용자가 지정하는 XPath 표현식과 일치하는 모든 노드의 위치를 찾습니다. 이러한 VI는 사용자가 지정하는 내용 노드를 사용하여 노드의 위치를 찾습니다. 내용 노드는 LabVIEW가 XPath 쿼리를 수행하는 XML 문서 내의 위치를 설명합니다. 따라서, 사용자가 상대 또는 절대적인 XPath 표현식을 지정하여 XML 문서를 쿼리할 수 있습니다.
LabVIEW는 XPath version 1.0을 지원하는데, 이는 World Wide Web Consortium (W3C)에 의해 정의되었습니다.
[모든 일치된 노드 얻기] VI 사용에 대한 예제는 labview\examples\File IO\XML\Parse XML 디렉토리에 있는 Parse XML String for Multiple Nodes VI를 참조하십시오.