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();
}
查看全文
相关阅读:
Debian常用操作
debian-11.0.0-amd64
CentOS-8.4.2105-x86_64
第20章: 二进制方式部署K8S1.20高可用集群
天狮集团云函数实践:自定义业务逻辑实现跨境电商全球直播
峰值利用率80%+,视频云离线转码自研上云TKE实践
腾讯首个CNCF沙箱开源项目
斗鱼直播云原生实践之注册中心篇
Superedge的新特性和未来之路
腾讯云与 Grafana Labs 达成深度合作, 推出全新 Grafana 托管服务
原文地址:https://www.cnblogs.com/xiaotaoliang/p/350867.html
最新文章
001_alsa_download
gdb调试代码栈
001_环境配置
Chrome 长截图
来日未必方长
万疆
iOS中MJExtension使用详解
iOS定义常量的两种方式define和FOUNDATION_EXPORT
努力,才是人生的态度
真正的幸福
热门文章
努力的意义
iOS比较枚举NSOrderedSame NSOrderedAscending NSOrderedDescending使用小结
个人的觉醒期
iOS开发Block使用详解
2、jumpserver本地重新部署
4 kubernetes数据库Etcd备份与恢复
5 kubelet证书自动续签
第21章: Ansible自动化部署K8S-v1.20集群(离线版)
本地部署安装Calico网络
vmware虚拟机"/dev/centos/root"逻辑卷(xfs文件系统)扩容
Copyright © 2011-2022 走看看