ホームページ  >  記事  >  バックエンド開発  >  正規表現を使用して golang で XML ドキュメント形式を検証する方法

正規表現を使用して golang で XML ドキュメント形式を検証する方法

PHPz
PHPzオリジナル
2023-06-24 11:52:27929ブラウズ

golang では、正規表現を使用して、XML 文書の形式が指定された仕様に準拠しているかどうかを簡単に検証できます。この記事では、正規表現を使用して XML ドキュメントの形式を検証する方法を紹介します。

XML は、構造化データを含むドキュメントを記述するために使用されるマークアップ言語です。 XML 文書はタグとデータで構成されており、タグはデータの種類と構造を識別するために使用されます。 XML ドキュメントの形式は特定の仕様に従う必要があります。そうしないと、解析エラーやデータ エラーが発生します。

一般に、XML ドキュメントの形式検証は、DTD や XSD などの特殊なドキュメント タイプを使用して定義できます。ただし、XML ドキュメントの基本形式が正しいことのみを確認する必要がある場合は、正規表現を使用する方が簡単な方法です。

正規表現を使用して XML ドキュメントの形式を検証する方法は次のとおりです。

ステップ 1. 正規表現を定義する
まず、形式を検証するために正規表現を定義する必要があります。 XML ドキュメントの。この正規表現は次の要件を満たす必要があります:

  1. XML ドキュメントは「7c15646bd1e523f676ae89013f842bc2" ターミネータ;
  2. 次に、"dd5d843a62a3ca76bd68a93aa4450185" の形式で空のドキュメント タイプ宣言があり、xxx はドキュメント タイプ名です。
  3. Document There型宣言の後には 1 つ以上のスペースまたは改行を指定できます。
  4. Finally は、「d55b48f42965904505cada53ebca2b59」形式のルート要素であり、xxx は要素名です。

要約すると、正規表現は次のように定義できます。

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。