>백엔드 개발 >Golang >정규식을 사용하여 golang에서 XML 문서 형식을 확인하는 방법

정규식을 사용하여 golang에서 XML 문서 형식을 확인하는 방법

PHPz
PHPz원래의
2023-06-24 11:52:27970검색

golang에서는 정규식을 사용하여 XML 문서의 형식이 지정된 사양을 준수하는지 쉽게 확인할 수 있습니다. 이 기사에서는 정규식을 사용하여 XML 문서의 형식을 확인하는 방법을 소개합니다.

XML은 구조화된 데이터로 문서를 작성하는 데 사용되는 마크업 언어입니다. XML 문서는 태그와 데이터로 구성됩니다. 태그는 데이터의 유형과 구조를 식별하는 데 사용됩니다. XML 문서의 형식은 특정 사양을 따라야 합니다. 그렇지 않으면 구문 분석 오류나 데이터 오류가 발생합니다.

일반적으로 XML 문서의 형식 유효성 검사는 DTD 또는 XSD와 같은 전용 문서 유형을 사용하여 정의할 수 있습니다. 그러나 XML 문서의 기본 형식이 올바른지 확인하기만 하면 되는 경우 정규식을 사용하는 것이 더 간단한 접근 방식입니다.

다음은 정규식을 사용하여 XML 문서의 형식을 확인하는 방법입니다.

1단계. 정규식 정의
먼저 XML 문서의 형식을 확인하기 위해 정규식을 정의해야 합니다. 이 정규식은 다음 요구 사항과 일치해야 합니다.

  1. XML 문서는 "42cd5718b05542016b7bdfbd3c47b36a"가 올 수 있습니다. "dd5d843a62a3ca76bd68a93aa4450185" 형식의 빈 문서 유형 선언. 여기서 xxx는 문서 유형 이름입니다.
  2. 문서 유형 선언 뒤에 하나 이상의 공백이나 줄 바꿈이 있을 수 있습니다.
  3. 마지막은 루트입니다. 요소, 형식은 "d55b48f42965904505cada53ebca2b59"이며, 여기서 xxx는 요소 이름입니다.
  4. 요약하면 정규식을 다음과 같이 정의할 수 있습니다.
var xmlRe = regexp.MustCompile(`^<?xml(s)+version="([^"]+)"(s)*?>((s)*<!DOCTYPE(.+)>)?(s)*<([^s]+)(.*?)>(.|
)*</8>(s)*$`)

2단계. 정규식을 사용하여 XML 문서 확인

이 정규식을 사용하여 XML 문서의 형식이 올바른지 확인할 수 있습니다. 구체적인 방법은 다음과 같습니다.

func IsValidXML(xml string) bool {
    return xmlRe.MatchString(xml)
}

위 코드는 XML 문자열을 매개변수로 받아들이고 XML 문서의 형식이 올바른지 여부를 나타내는 true 또는 false를 반환하는 IsValidXML 함수를 정의합니다. 이 함수는 일치를 위해 위에 정의된 정규식을 사용하고 일치에 성공하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

다음은 완전한 예입니다.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    xml := `


    Tove
    Jani
    Reminder
    Don't forget me this weekend!
`

    isValid := IsValidXML(xml)
    fmt.Println(isValid)
}

var xmlRe = regexp.MustCompile(`^<?xml(s)+version="([^"]+)"(s)*?>((s)*<!DOCTYPE(.+)>)?(s)*<([^s]+)(.*?)>(.|
)*</8>(s)*$`)

func IsValidXML(xml string) bool {
    return xmlRe.MatchString(xml)
}

출력 결과는 true이며, 이는 이 XML 문서의 형식이 정확함을 나타냅니다.

요약

정규식을 사용하면 XML 문서의 형식이 올바른지 쉽게 확인할 수 있습니다. 그러나 이 정규식은 XML 문서의 기본 형식만 확인할 수 있을 뿐 요소와 속성의 적법성은 확인할 수 없다는 점에 유의해야 합니다. 따라서 XML 데이터 작업을 수행할 때 확인을 위해 전용 문서 유형 정의를 사용하는 것이 좋습니다.

위 내용은 정규식을 사용하여 golang에서 XML 문서 형식을 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.