当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP DOMDocument relaxNGValidate()用法及代码示例


DOMDocument::relaxNGValidate()函数是PHP中的内置函数,用于对文档执行RelaxNG验证。 RelaxNG是DDT的替代方法,它定义了XML文档必须遵循的结构。

用法:

bool DOMDocument::relaxNGValidate( string $filename )

参数:该函数接受一个包含RNG文件的参数$filename。


返回值:如果成功,则此函数返回TRUE;如果失败,则返回FALSE。

下面给出的程序说明了PHP中的DOMDocument::relaxNGValidate()函数:

程序1:

  • 档案名称:rule.rng
    <element name="college" 
      xmlns="http://relaxng.org/ns/structure/1.0"> 
      <zeroOrMore> 
        <element name="rollno"> 
          <element name="name"> 
            <text/> 
          </element> 
          <element name="subject"> 
            <text/> 
          </element> 
        </element> 
      </zeroOrMore> 
    </element>
  • 档案名称:index.php
    <?php 
      
    // Create a new DOMDocument 
    $doc = new DOMDocument; 
      
    // Load the XML 
    $doc->loadXML("<?xml version=\"1.0\"?> 
    <college> 
      <rollno> 
        <name>John Smith</name> 
        <subject>Web</subject> 
      </rollno> 
      <rollno> 
        <name>John Doe</name> 
        <subject>CSE</subject> 
      </rollno> 
    </college>"); 
      
    // Check if XML follows the relaxNG rule 
    if ($doc->relaxNGValidate('rule.rng')) { 
        echo "This document is valid!\n"; 
    } 
    ?>
  • 输出:
    This document is valid!

程序2:

  • 档案名称:rule.rng
    <element name="company" 
      xmlns="http://relaxng.org/ns/structure/1.0"> 
      <zeroOrMore> 
        <element name="employee"> 
          <element name="name"> 
            <text/> 
          </element> 
          <element name="salary"> 
            <text/> 
          </element> 
        </element> 
      </zeroOrMore> 
    </element>
  • 档案名称:index.php
    <?php 
      
    // Create a new DOMDocument 
    $doc = new DOMDocument; 
      
    // Load the XML 
    $doc->loadXML("<?xml version=\"1.0\"?> 
    <company> 
      <employee> 
        <name>John Smith</name> 
        <salary>Web</salary> 
      </employee> 
      <employee> 
        <!-- Do not add salary to voilate rule --> 
        <name>John Doe</name> 
      </employee> 
    </company>"); 
      
    // Check if XML doesn't follows the relaxNG rule 
    if (!$doc->relaxNGValidate('rule.rng')) { 
        echo "This document is not valid!\n"; 
    } 
    ?>
  • 输出:
    This document is not valid!

参考: https://www.php.net/manual/en/domdocument.relaxngvalidate.php



相关用法


注:本文由纯净天空筛选整理自gurrrung大神的英文原创作品 PHP | DOMDocument relaxNGValidate() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。