使用SAX解析XML
SAX(Simple API for XML简称SAX)事件是无状态的,也就是说,当接收到字符数据的事件后,并不知道该字符数据是哪一个元素的
内容。同样地,当收到元素开始的事件后,也无法知道该元素是否有父元素,是否有子元素,这是
SAX和DOM不同的地方。SAX解析器本身并不提供元素的上下文信息,所有相关信息的记录需要我们自
己编程去实现
SaxXml类加载XML数据流,(目前用字符串代替),建立解析工厂,生产SAX解析对象
import java.io.ByteArrayInputStream;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.SAXException;
public class SaxXml {
private SaxXml() {
}
SaxXml(String xmlFile) {
try{
String xmltest = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"
+"<home>"
+"<name>张三</name>"
+"<sex>男</sex>"
+"<age>20</age>"
+"</home>";
byte[] data1 = xml.getBytes();
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(true);
SAXParser sax = factory.newSAXParser();
sax.parse(new ByteArrayInputStream(data1), XmlHandler.handler/*new XmlHandler()*/ );
} catch (ParserConfigurationException pce) {
System.out.println("Could not create that parser.");
System.out.println(pce.getMessage());
} catch (SAXException saxe) {
System.out.println("Problem wITh the SAX parser.");
System.out.println(saxe.getMessage());
} catch (Exception e) {
e.printStackTrace();
&n
相关文档:
IsolatedStorageFile:包含文件和数据的独立存储区
dataset数据存储到本地xml文档,代码处理如下
public static void WriteDataToXML(DataSet dataset, string dataname)
{
try
{
IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForAssembly(); / ......
var
xmlDoc
=
null
;
function
parseXML
(
xmlUrl
)
{
try
{
//IE
xmlDoc
=
new
ActiveXObject
(
"Microsoft.XMLDOM"
);
xmlDoc
.
async
=
false
;
xmlDoc
......
<?
XML DOM读取节点信息遇到问题总结:
1:NodeList: 使用节点的childNodes属性或者document对象的getElementsByTagName()方法,就会返回一个包含节点列表的NodeList
2: 在 XML DOM 中,节点的关系被定义为节点的属性:
· parentNode
· childNodes
· ......
首先,加载TXT实例:
代码:
虽然是很旧的一套教程,可是很实用,所以我把它放在这。
(注意:看代码的时候留意一下节点的用法:myXML.childNodes[0].childNodes[0].childNodes[0]....xml节点的地方。)
一、建立XML对象:
var myXML = new XML();
二、引用XML文件:
myXML.load("data.xml");
三、忽略空格:
my ......
在web.config做參數設定時遇到特殊字元 value="http://www.yahoo.com.tw/default.aspx?sid=111111111&uid=test"
&uid這地方會出錯...換成&uid 就OK了~~
幾個
對照如下:
< 小於
<
> 大於
>
&
& ......