C#中将html转换为xml的实现

html-css016

C#中将html转换为xml的实现,第1张

我给你些我的建议吧

HTML的语法格式比XML宽松多了,真正XML格式的网页是XHTML,也就是下一代HTML,他的格式和XML差不多,很严谨的。

如果你不想利用某些HTML和XML互转工具,自己编的话,有一定难度。

1.HTML的节点可以没末节点,你需要不停扫描<,>,/,这三个符号以检查是否漏掉末节点,并补充。

2.HTML节点还可以不规则嵌套,你需要对已读入节点进行顺序存储,或用栈的数据结构来存储,并验证其层次正确性,最终正确顺序的节点,期间还得缓存节点值,或属性值。

3.HTML不同于XML,许多HTML节点有特殊的意义,许多HTML节点比如<b>,<hr/>都需要经过特殊处理才行。

在技术上,为保证性能,还要在一下方面有加强。

1.强大的字符串扫描,和解析器,此工作也巨大,但网上源码很多,建议到google英文里搜索,HTML parser,XML parser(解析器),有很多c#,java,c++的源代码可以利用,没有强大的解析器,跟本无法读懂文件。

2.System.Xml空间的详细运用,除了简单的XMLWriter,还必须学会XMLDocument,XmlNode,能够动态操控XML。还有Xpath技术,操作XMl很有效率。

3.适当还会运用到正则表达式,来处理字符串匹配问题,尤其是节点的操作,即使是再好的字符串查找算法,有时也不如正则表达式,因此system.Text 中的Regex类要掌握好。

4.会控制WinForm中的WebBrower控件

当然,即使你不打算自己做,或已找到了源代码,要想读懂,也必须要以上的知识。

至于工具,网上有,源码还哪找,有java的,但下载不下来。

这是著名的W3C(Html,xml等技术的创始组织)的转换工具,里面也有一些介绍,相信会有用的。

http://www.w3.org/People/Raggett/tidy/

有一个用C#编的转换器,但付费后才可看到源代码

http://www.chilkatsoft.com/downloads.asp

http://www.example-code.com/csharp/html2xml.asp

还有一些软件,stylus的产品不错!

http://www.stylusstudio.com/html_to_xml_importer.html

1,内嵌XML数据

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312">

<title>第一次亲密接触(非痞子蔡版,请不要理解为侵权)</title>

</head>

<body>

<xml id="第一次亲密接触">

<第一次亲密接触>

<对象>xml</对象>

<亲密程度>接触到XML稍微宝贵的地方---数据岛</亲密程度>

<结论>感觉不错,是个好东东</结论>

</第一次亲密接触>

</xml>

<center><h1>第一次亲密接触</h1></center>

<table border="0" datasrc="#第一次亲密接触" align="center" width="443">

<tr>

<td bgcolor="#99FF99">对象: <span datafld="对象"></span></td>

<td bgcolor="#3399CC">亲密程度:<span datafld="亲密程度"></span></td>

<td bgcolor="#CC99CC">结论: <span datafld="结论"></span></td>

</tr>

</table>

</body>

</html>

2.外部xml文件的引用

首先利用以前的知识建立一个XML文件(不是我懒,给你们一个机会锻炼^^)

涉及到以下<xml></xml>中的数据内容

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312">

<title>第一次亲密接触(非痞子蔡版,请不要理解为侵权)</title>

</head>

<body>

<xml id="第一次亲密接触" src="firstlove.xml">

<第一次亲密接触>

<对象>xml</对象>

<亲密程度>接触到XML稍微宝贵的地方数据岛</亲密程度>

<结论>感觉不错,是个好东东</结论>

</第一次亲密接触>

</xml>

<center><h1>第一次亲密接触</h1></center>

<table border="0" datasrc="#第一次亲密接触" align="center">

<tr>

<td bgcolor="#99FF99">对象: <span datafld="对象"></span></td>

<td bgcolor="#3399CC">亲密程度:<span datafld="亲密程度"></span></td>

<td bgcolor="#CC99CC">结论: <span datafld="结论"></span></td>

</tr>

</table>

</body>

</html>

我们可以通过指定XML文件位置来引用她,一般通过src="XXX.xml"引用.

XML是被设计用来存储数据、携带数据和交换数据的。

通过XML,可以在不兼容的系统之间交换数据,利用XML,纯文本文件可以用来存储数据。在不使用XML时,HTML用于显示数据,数据必须存储在HTML文件之内。

XML不是为了显示数据而设计的,主要是用于交换数据,可以从HTML中分离数据,也可以用于存储数据,大量的数据可以存储到XML文件中或者数据库中,应用程序可以读写和存储数据,一般的程序可以显示数据。

通过XML可以在HTML文件之外存储数据使用,也可以充分利用数据,可以用于创建新的语言XML是WAP和WML语言的母亲。如果开发者有足够的预见性,那么将来的应用程序都应该使用XML的形式来存储数据。