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


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


DOMDocument::relaxNGValidateSource()函数是PHP中的一个内置函数,用于使用字符串作为RNG架构对文档执行RelaxNG验证。 relaxNGValidate()和relaxNGValidateSource()之间的区别在于,前者接受rng模式文件名,而后者也接受rng模式文件名。

用法:

bool DOMDocument::relaxNGValidateSource( string $source )

参数:该函数接受一个包含RNG模式的单个参数$source。


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

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

程序1:

<?php 
  
// Create a new DOMDocument 
$doc = new DOMDocument; 
  
// RNG schema 
$RNG = "<element name=\"body\"  
    xmlns=\"http://relaxng.org/ns/structure/1.0\"> 
<zeroOrMore> 
  <element name=\"div\"> 
    <element name=\"h1\"> 
      <text/> 
    </element> 
    <element name=\"h2\"> 
      <text/> 
    </element> 
  </element> 
</zeroOrMore> 
</element>"; 
  
// Load the XML 
$doc->loadXML("<?xml version=\"1.0\"?> 
<body> 
  <div> 
    <h1>Heading 1</h1> 
    <h2>Heading 2</h2> 
  </div> 
  <div> 
    <h1>Heading 3</h1> 
    <h2>Heading 4</h2> 
  </div> 
</body>"); 
  
// Check if XML follows the relaxNG rule 
if ($doc->relaxNGValidateSource($RNG)) { 
    echo "This document is valid!\n"; 
} 
?>

输出:

This document is valid!

程序2:

<?php 
  
// Create a new DOMDocument 
$doc = new DOMDocument; 
  
// RNG schema 
$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>"; 
  
// 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->relaxNGValidateSource($RNG)) { 
    echo "This document is not valid!\n"; 
} 
?>

输出:

This document is not valid!

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



相关用法


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