注意:刚刚看了网上对于XML中的标签,节点和元素?到底应该怎么表述?起初我也有这个疑惑,现在我的想法是:下面出现node的应称作节点,节点对象。element应称作元素,毕竟这更符合英文的本意。至于标签,我们可以将<></>称作标签,但只限于这些尖括号。其实没有必要这么咬文嚼字,这些只是便于我们准确的交流,可以让人清楚的理解你所说的是什么,终于的是你知道这个元素或标签指的是什么。
这里给一个w3school上面关于XML元素定义:
XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。
(201409290041)
还是继续学习 燕十八老师传世经典三部曲第三步:xml ,只是学习笔记,基本都是记录老师的讲解,融入了一些自己的认识。不属于原创,原创请看十八哥的视频。默默的给十八哥送上32个赞
前几天刚学了smarty模板引擎,由于在公司简单的用过,对于一些smarty已经会用了,只是还不是很清楚,就看了看。并没有做什么笔记,模板引擎吗!只要会用就行了,没有必要学习研究太多其中高级的东西,毕竟现在还是掌握更紧要。至于以后经验丰富了和时间允许可以好好看看源码。
还是说xml吧,之前简单的看过http://www.w3school.com.cn/ 关于xml的介绍。只是浏览了一边概念,至于到底怎么用,还是没有任何感觉!很多时候都觉得还是需要看着老师或者别人做一下,才能知道这东西什么时候用、在哪里用和怎么用。还是自己有点笨啊!哎。。。
先来copy一段w3school上面关于xml的介绍吧!
$title0 = $ts->item(0); // $title0 就是一个节点对象 DOMElement Object ( )
$title0->childNodes
print_r($title0->childNodes); 子节点对象列表 DOMNodeList Object
选取第一个子节点对象,也就是下面的文本对象
//这里的子节点列表对象也和上面提到的一样,一个属性和一个方法
$text = $title0->childNodes->item(0);
print_r($text); //DOMText Object ( ) 文本对象
echo $text->wholeText;
1 <?xml version='1.0' encoding='utf-8' ?> 2 <bookstore> 3 <book> 4 <title>路遥-平凡的世界</title> 5 <price>43</price> 6 </book> 7 <book> 8 <title>曹雪芹-红楼梦</title> 9 <price>93</price> 10 </book> 11 </bookstore>
php文件
1 <?php 2 header("content-type:text/html;charset=utf-8"); 3 //创建DOM解析对象 4 $dom = new DOMDocument('1.0','utf-8'); 5 print_r($dom); // DOMDocument Object ( ) DOM文档对象 6 // 载入xml文档 7 $dom->load('./02.xml'); 8 echo "<br/>"; 9 print_r($dom); // DOMDocument Object ( ) 10 //选取节点,得到节点列表对象 DOMNodeList Object ( ) 11 $ts = $dom->getElementsByTagName('title'); 12 echo "<br/>"; 13 print_r($ts); // DOMNodeList Object ( ) 14 /******************************** 15 * DOMNodeList Object ( ) 16 * 一个属性:length,代表取得的节点数 17 * 一个方法:item(N),代表取得第N个节点,N从0 开始 18 * 19 * *****************************/ 20 echo "<br/>"; 21 echo $ts->length; // 节点列表长度, 22 echo "<br/>"; 23 //选取列表中的第一个,得到一个节点对象 24 print_r($ts->item(0)); //DOMElement Object ( ) 25 26 $title0 = $ts->item(0); // $title0 就是一个节点对象 DOMElement Object ( ) 27 echo "<br/>"; 28 print_r($title0->childNodes); // DOMNodeList Object ( ) 这里的childNodes 是一个属性,得到的是子节点列表对象 29 /*********************************** 30 * 注意在xml中,一切都是节点,包括文本,回车换行 31 * 所以,title中的 ‘路遥-平凡的世界’和title的关系就是父子关系。 32 * 这也就是为什么上面print_r($title0->childNodes); 打印的是 DOMNodeList Object ( ),还是一个节点列表对象 33 **********************************/ 34 //选取第一个子节点对象,也就是下面的文本对象 35 //这里的子节点列表对象也和上面提到的一样,一个属性和一个方法 36 $text = $title0->childNodes->item(0); 37 echo "<br/>"; 38 print_r($text); //DOMText Object ( ) 文本对象 39 40 echo "<br/>"; 41 //我们已经很接近了,我们获得了文本对象,然后只要难道对象内容就行了 42 //使用文本对象的一个属性 wholeText 43 echo $text->wholeText; 44 45 /*********************************************** 46 * 现在,我们捋一捋我们刚才的整个思路 47 * 首相,实例化一个文档对象:DOMDocument Object ,也就是上面的$dom 48 * 其次,调用road方法,载入xml文件 $dom->load('./02.xml'); 49 * 然后,通过getElementsByTagName方法 得到一个title节点列表对象:$ts ,DOMNodeList Object 50 * 再然后,我们想得到第一个书名,我们使用item(0)选取列表中的第一个节点对象 DOMElement Object 51 * 再然后,通过print_r($title0->childNodes) 看到 得到的又是一个节点列表DOMNodeList Object,为什么?上面已经说明,这里就不再多说了 52 * 最后,通过$text = $title0->childNodes->item(0); 选取第一个节点对象,这个对象是一个 DOMText Object ( ) 文本对象 53 * 好了,使用wholeText属性得到信息 54 * 注意:以上的这些操作都是可以连续操作的,下面举例(将第二本书名取出): 55 * ********************************************/ 56 echo "<hr/>"; 57 echo $dom->getElementsByTagName('title')->item(1)->childNodes->item(0)->wholeText; 58 echo "<hr/>"; 59 /** 60 * 这是一种简洁的写法,但是,这个不够正规 61 **/ 62 echo $dom->getElementsByTagName('title')->item(1)->nodeValue; 63 /*************************************** 64 * xml 的DOM解析本身是不难的,但是就是解析的太深了、太繁琐了,所以就会显得有些难 65 * 虽然此处似乎有些难,但是很有必要仔细学、慢慢学,一定要弄懂,因为这里说的php中的 66 * 对xml的DOM解析在js、java、C#都是很相似的,甚至和一说一个思想,同样的方法,所以花点 67 * 时间是很值得的!这就有点像正则表达式,只要学会了,那个程序语言中都可以正常使用 68 **************************************/ 69 ?>
好了,暂时就做这些吧,至于老师讲的土豆视频应用的那个,不是我没做,我整了老长时间,硬是找不到土豆那个app应用申请在哪里,优酷的我看返回的是json格式,哎,就没有上手做。有时间了看看json ,做做优酷