zoukankan
html css js c++ java
解决了XMLTextReader的用法的一个难题,EndElement
如下,CodeGuru或者CodeProject上找到的例子都没有处理 像这样的情形 :
<a name="test" /> 就是没有 </a>标签的情形,这时候处理a元素是不会碰到 EndElement的。
这里做了一个处理,即判断其深度。
XmlTextReader reader
=
null
;
try
{
reader
=
new
XmlTextReader(streamReader);
startDocument();
//
开始分析
int
dept
=
-
1
;
while
(reader.Read())
{
switch
(reader.NodeType)
{
case
XmlNodeType.Element:
Hashtable attributes
=
new
Hashtable();
string
strURI
=
reader.NamespaceURI;
string
strName
=
reader.Name;
if
(reader.HasAttributes)
{
for
(
int
i
=
0
; i
<
reader.AttributeCount; i
++
)
{
reader.MoveToAttribute(i);
attributes.Add(reader.Name, reader.Value);
}
}
startElement(strURI, strName, strName, attributes);
if
(dept
!=
-
1
&&
reader.Depth
<=
dept)
//
处理 "/>"的标签
endElement(
string
.Empty, reader.Name,
string
.Empty);
dept
=
reader.Depth;
break
;
case
XmlNodeType.EndElement:
endElement(
string
.Empty, reader.Name,
string
.Empty);
break
;
case
XmlNodeType.Text:
characters(reader.Value);
break
;
default
:
break
;
}
}
return
(Namespace) objectStack.Pop();
}
catch
(XmlException e)
{
Console.WriteLine(
"
error occured:
"
+
e.Message);
}
finally
{
if
(reader
!=
null
) reader.Close();
}
查看全文
相关阅读:
vue 自定义全局按键修饰符
Vue 过滤器
v-if、v-show 指令
其他内置函数
python中序列化和反序列化
jmeter图形化html报告核心指标介绍
jmeter在linux系统下如何进行压力测试
文件操作的其他方法
文件处理操作
内置函数reduce()
原文地址:https://www.cnblogs.com/xiaotaoliang/p/350867.html
最新文章
Node.js之connect中间件的源码解析
JavaScript之图片的无缝滚动
Nodejs之http的表单提交
Nodejs之TCP服务端与客户端聊天程序详解
栈的应用-汉诺塔
JavaScript数据结构之栈
Node.js之http模块中类的关系详解之客户端(下)
Node.js之http模块中类的关系详解之服务器端(上)
原生js写简单轮播图方式2-淡入淡出
mysql记录
热门文章
两次跳转后session丢失
查看进程信息
使用like时left outer join和inner join的区别
vue 使用ref获取DOM元素和组件引用
vue 子组件传值给父组件
vue 组件-父组件传值给子组件
vue 组件-组件定义的4种方式
vue 动画
vue 生命周期
vue 自定义指令
Copyright © 2011-2022 走看看