0

完全に公開されてライブになる前に、ユーザーによって公開される可能性のあるxmlファイルを完全に検証しようとしています-これは基本的にsitemap.xmlに似ており、エラー防止なしでは絶対に公開できません(はい、そうします独自のカスタム dtd もあります)。

また、ストレージ システムを実装することも考えていました。これにより、最後の 2 ~ 3 バージョンを保存することができます (これは非常に優先度の高いタイプであるため)。

任意のヒント?

編集:これが私が現在持っているものですが、状況によっては、xmlが正確に有効ではなかったときに検証されたと思います:

$dom = new DOMDocument();
if ( $dom->load( $tempFileName ) ) {
    if ( $dom->validate() ) {
    echo '<p>XML is valid. Overwriting sitemap.xml.</p>';
    file_put_contents( 'sitemap.xml', $sitemapXML->asXML() );
    } else {
    echo '<p>XML is not valid. Please correct.</p>';
    }
}
4

2 に答える 2

2

DOM メソッドの使用:

$doc = new DOMDocument();
$doc->load($xmlPath);
if (!$doc->validate()) {
    die("OH NOES!");
    // ... or perform your own restore-to-a-backup procedure.
}
于 2009-08-14T03:50:33.093 に答える
1

libxml に dtd をロードし、xml ドキュメントがロードされたときにすぐにそれに対して検証するように「伝える」ことができます。

$doc->load( $tempFileName, LIBXML_DTDLOAD|LIBXML_DTDVALID )

http://php.net/libxml.constantsを参照してください

于 2009-08-14T08:07:52.687 に答える