PHP中如何处理XML Schema验证?


在PHP中,可以使用SimpleXML和DOM扩展库来验证XML文档是否符合指定的XML Schema。下面分别介绍这两个库的用法。

SimpleXML方式

使用SimpleXML进行XML Schema验证的步骤如下:

  • 加载XML Schema文件和XML文件到SimpleXML对象中。
  • 使用libxml_use_internal_errors()函数打开错误处理,以捕获XML解析和验证过程中的错误信息。
  • 调用simplexml_load_string()或simplexml_load_file()函数将XML文件加载到SimpleXML对象中。
  • 使用simplexml_import_dom()函数将DOM对象转换为SimpleXML对象。
  • 调用$sxe->schemaValidate()方法对XML文档进行XML Schema验证。


示例代码如下:
$xml = simplexml_load_fi...


    6个月前 阅读:30 评论:0

    PHP完美json或数组转XML(原创)


    网上看到那些都是垃圾,数组多几层就不行了,还有就是用字符串组合成xml结构,这样很容易出错。
    本人原创的这段是用PHP的DOMDocument生成的xml结构,兼容性很好,而且解析时不会出错。


    class jsonToXml {
    
    	public static function convert($data, DOMDocument $dom = null, DOMElement $xml = null) {
    		if(!$dom) {
    			$dom = new DOMDocument('1.0', 'UTF-8');
    			$dom->formatOutput = true;
    		}
    		if(!$xml) {
    			$xml = $dom->createElement('xml');
    			$xml->setAttribute('root', 'http...


    7年前1月19日 阅读:909 评论:1

    PHP正则表达式参数 /i,/g,/ig,/gi,/m的区别和含义


    /i (忽略大小写) /g (全文查找出现的所有匹配字符) /m (多行查找) /gi(全文查找、忽略大小写) /ig(全文查找、忽略大小写) i 模式中的字符将同时匹配大小写字母 m 字符串视为多行 s 将字符串视为单行,换行符作为普通字符 x 将模式中的空白忽略 e preg_replace() 函数在替换字符串中对逆向引用作正常的替换,将其作为 PHP 代码求值,并用其结果来替换所搜索的字符串。 A 强制仅从目标字符串的开头开始匹配 D 模式中的 $ 元字符仅匹配目标字符串的结尾 U 匹配最近的字符串 u 模式字符串被当成 UTF-8

    /i (忽略大小写)

    /g (全文查找出现的所有匹配字符)

    /m (多行查找)

    /gi(全文查找、忽略大小写)

    /ig(全文查找、忽略大小写)

    i 模式中的字符将同时匹配大小写字母

    m 字符串视为多行

    s 将字符串视为单行,换行符作为普通字符

    x 将模式中的空白忽略

    e ...


    8年前9月2日 阅读:451 评论:0

    Javascript中模拟PHP的print_r函数


    有些效果出不来,比如变量类型是object类型的不能完全打印!

    function print_r(array, return_val) {
    	var output = '', pad_char = ' ', pad_val = 4, d = this.window.document,
    	getFuncName = function (fn) {
    		var name = (/\W*function\s+([\w\$]+)\s*\(/).exec(fn);
    		if (!name) {
    			return '(Anonymous)';
    		}
    		return name[1];
    	},
    	repeat_char = function (len, pad_char) {
    		var str = '';
    		for (var i = 0; i < len; i++)...


    13年前10月8日 阅读:132 评论:0

    PHP的MSSql的操作类


    /*MSSql的操作类*/  
    class MSSql {   
    	var $link;   
    	var $querynum = 0;   
      
    	/*连接MSSql数据库,参数:dbsn->数据库服务器地址,dbun->登陆用户名,dbpw->登陆密码,dbname->数据库名字*/  
    	function Connect($dbsn, $dbun, $dbpw, $dbname) {   
    		if($this->link = @mssql_connect($dbsn, $dbun, $dbpw, true)) {   
    			$query = $this->Query('SET TEXTSIZE 2147483647');   
    			if (@mssql_select_db($dbname, $this->link)...


    15年前4月10日 阅读:249 评论:0

    顶部