다양한 형식(쉼표 또는 탭으로 구분된 파일부터 로드 가능한 형식까지)으로 저장되거나 전송된 데이터를 처리해야 하는 상황에 자주 직면하며, 각 형식 파서에 응답해야 합니다. 이러한 단점으로 인해 개발 속도가 느려지고 오류가 발생할 수 있습니다. 한 가지 해결책은 일반적으로 사용되는 형식의 데이터를 XML 문서로 변환한 다음 이를 다른 형식으로 저장, 처리 또는 변환하는 것입니다.
예
현재 소프트웨어 내에서 또는 소프트웨어 간에 데이터 저장, 내보내기, 가져오기 및 전송 기능을 구현하는 많은 데이터 형식이 있습니다. 가장 일반적인 것은 쉼표 또는 탭으로 구분된 데이터 형식과 고정 길이 데이터 형식과 같은 구분 형식입니다. 데이터를 쉼표로 구분된 고정 길이 형식으로 내보내는 기능을 제공하는 주소록 프로그램이 있다고 가정해 보겠습니다.
쉼표로 구분된 형식에서는 목록 A와 같이 쉼표를 사용하여 동일한 데이터 레코드의 여러 필드를 구분합니다. 고정 길이 데이터 형식에서는 레코드의 각 필드에 표준 길이가 있어야 합니다. 목록 B는 고정 길이 형식의 주소록을 보여줍니다.
XML 문서 생성
이제 입력 데이터를 파싱하여 XML 문서로 변환해 보겠습니다. XML 문서(예: org.w3c.dom.Document)는 전체 DOM(문서 개체 모델)의 기본 데이터 유형이며 문서 데이터에 대한 액세스를 제공합니다.
코드 목록 C와 같이 buildDocument(InputStream is) 메소드를 실행하여 데이터에 해당하는 문서를 생성할 수 있습니다. 이 방법은 입력 데이터 스트림을 한 줄씩 읽고 주어진 그리드에 따라 한 줄씩 분석합니다.
구분된 형식의 데이터를 구문 분석하려면 구분 기호가 임의의 문자열일 수 있는 생성자 PlainTextToXmlFormatter(String[ ] colName,String delim)를 사용하여 클래스의 인스턴스를 생성해야 합니다. 고정 길이 형식의 경우 필드 길이 배열을 하나의 매개 변수로 사용하는 두 번째 생성자 PlainTextToXmlFormatter(String[ ] colName,int[ ] colLen)를 사용해야 합니다. 우리가 제시한 주소록 예에서 각 필드의 길이는 각각 10, 10, 30, 10자입니다. colName 매개변수는 대상 데이터 레코드의 이름을 저장하는 배열입니다. 예제에서 이름은 이름(firstName), 성(lastName), 이메일, 전화번호(phone)입니다.
데이터 행을 데이터 기호로 변환하는 실제 구문 분석 프로세스는 getStringArray(String read, String delim) 또는 parsFixedLengthMessage(String read, int[ ] colLen) 메소드를 실행하는 프로세스입니다. 반환 값은 위의 두 가지 방법으로 주어진 입력을 분해하여 얻은 문자열 배열입니다. 데이터 형식이 올바르지 않으면 예외가 발생하고 구문 분석 오류가 종료됩니다. 예외를 무시하고 데이터 구문 분석 프로세스를 완료하려면 setSkipError(true) 메소드를 호출하십시오. 이 메서드를 호출하면 예외가 발생하지 않지만 프로그램은 여전히 오류 출력 스트림에 오류 정보를 인쇄할 수 있습니다.
행이 태그로 구문 분석되면 XML 문서의 요소로 XML 문서에 추가됩니다. 요소에 배치된 각 레코드 줄에는 기본 이름 줄이 있습니다. setDataLineName()을 호출하여 이름을 지정할 수도 있습니다. 각 데이터 레코드는 열 요소이고, 열 요소의 이름은 해당 클래스 생성자에 의해 제공되며, 하위 요소는 행 요소에 추가됩니다.
입력 데이터를 완전히 읽은 후에는 추가 처리가 가능한 유효한 XML 문서가 생성됩니다. 이제 데이터는 잘 알려진 트리 구조로 구성되어 있으므로 작업이 매우 간단합니다. 예를 들어, 이 문서를 제3자에게 보낼 수 있습니다. 제3자가 문서의 문서 유형 정의(DTD)를 알고 있으면 문서를 쉽게 처리할 수 있습니다. writeDocument(Document doc, OutputStream osOut) 메소드를 호출하여 이 문서를 저장할 수도 있습니다. 코드 목록 D에는 XML 문서를 파일로 저장하는 예가 나와 있습니다.
XSLT 변환을 사용하여 데이터 보기
XML 데이터를 다른 형식으로 변환하고 다른 보기를 사용하여 해당 콘텐츠를 나타낼 수도 있습니다. 가장 간단한 방법은 하나의 어휘를 사용하는 XML 인스턴스를 다른 어휘를 사용하는 간단한 텍스트, HTML 또는 XML로 변환할 수 있는 강력한 트리 지향 변환 언어 구현을 제공하는 XSLT 변환을 사용하는 것입니다.
특정 XML 입력에 대해 XSLT 언어를 사용하여 원하는 출력을 생성할 수 있습니다. 예를 들어, 변환 데이터(InputStream xmlIn, InputStream xslIn, OutputStream transfOut)를 실행하여 XML 데이터를 HTML 문서로 변환할 수 있습니다. Listing E는 XSLT 변환의 예를 제공하는 반면, Listing F는 주소록 항목의 HTML 보기를 제공합니다.
데이터 관리 단순화
이 글에서는 PlainTextToXmlFormatter 클래스를 분석하여 일반적으로 사용되는 형식 데이터를 XML 문서로 변환하는 방법을 알아보았습니다. 또한 XSLT 변환을 사용하여 다양한 보기에서 XML 문서를 표현하는 방법도 살펴보았습니다. 다양한 형식의 데이터를 처리해야 할 경우 위의 기술을 채택하는 것이 좋은 솔루션이 될 수 있으므로 귀중한 시간을 절약하고 오류 가능성을 줄일 수 있습니다.
위 내용은 데이터를 XML 형식으로 변환할 때의 이점에 대해 자세히 소개한 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!