XML中含有html标签的问题
看结论请直接看下面
今天写生成xml的php。没有用什么XMLDOMNode之类的来生成,而是直接echo出xml的内容。
xml的内容中有一部分的数据是从db中循环取出的,问题就出在这。我发现全部取出数据时,对于生成的xml,simplexml_load_string返回false,即表明生成的xml是非法的。
debug一下,发现取出数据加以限制 limit 8 一下就没有问题,第9个数据一旦取出就会在成xml非法。仔细比对了下第9条数据,终于发现问题所在,数据中包含手动输入的html标签,而且关键问题是这些标签的有些没有关门。。。
/********************看下面即可**********************/
1 xml语法更严格。[start][/start]标签必须成对出现。html的tag没有这么严格。
2 xml中包含有html tag时,会把这些tag当作xml的一部分,所以xml语法检查对html tag也是有效的。
3 要想让xml的语法检查对某一部分不去作用,请用 <![CDATA[和]]> 。
<![CDATA[和]]>是规定的开始和结束,这部分数据不做任何语法检查。例如:
<a><![CDATA[<intro>1.a 2.b</intro>]]></a>
另外,查了下资料,貌似使用XMLDOMNode接口里的text属性,可以直接把html tag作为值给塞到xml中去。
相关文档:
xml文件如下 配置功能开关
<Configurations>
<Samples>true</Samples>
<Excepts>true</Excepts>
<CheckFace>false</CheckFace>
<ThumbNail>false</ThumbNail>
&nbs ......
<html>
<head>
<mce:style type = "text/css"><!--
table
{
border-collapse:collapse;
}
td
{
border:solid 1px black;
}
--></mce:style><style type = "text/css" mce_bogus="1">table
{
border-collapse:collapse;
}
td
......
1.avi格式
代码片断如下:
<object id="video" width="400" height="200" border="0" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA">
<param name="ShowDisplay" value="0">
<param name="ShowControls" value="1">
<param name="AutoStart" value="1">
<param name="Auto ......
XML文件作为数据数据存储介质的一种,好处在于:任何的系统均可以解析它。
XML全称:Extensible Markup Language(扩展标记语言)使用文档类型定义(DTD)或者模式(Schema)来描述数据的。可供人阅读,而且还基于一种公共的开发标准。
最近由于开发的需要,也是研究以下XML的操作,本篇日志主要总结C#.NET中是如何操作XM ......
HTML <!DOCTYPE> 标签
定义和用法
<!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。
该标签可声明三种 DTD 类型,分别表示严格版本、过渡版本以及基于框架的 HTML 文档。
以下面这个 <!DOCTYPE> 标签为例:
<!DOCTYP ......