请教大体积XML文件的设计以及更新,高分期待讨论

Namo 2006-04-21 10:03:58
使用XML在OCX与Server之间交换数据,整个XML是对OCX上的Object的一个描述,这些描述信息有OCX自身使用的客户端的信息(ClientInfo),也有需要交互的服务器端需要的信息(ServerInfo);如果按照最直观的方式来设计,那么格式是这样的:
<Object ID="obj1">
<ServerInfo>
...
</ServerInfo>
<ClientInfo>
...
</ClientInfo>
</Object>
<Object ID="obj2">
<ServerInfo>
...
</ServerInfo>
<ClientInfo>
...
</ClientInfo>
</Object>
...
<Object ID="objN">
<ServerInfo>
...
</ServerInfo>
<ClientInfo>
...
</ClientInfo>
</Object>

如前面所说,在服务器端处理数据的时候,实际上只需要ServerInfo的信息,因此在读取XML内容的过程中,诸多的ClientInfo是作为冗余数据读取的。我想使用dtd来设计一个更合理的XML的格式,如下:
<Object ID="obj1">
<!DOCTYPE ServerInfo [
<!ENTITY ServerInfoDetail
SYSTEM "ServerInfoDetail.xml">
]>
<ServerInfo>
&ServerInfoDetail;
</ServerInfo>
<ClientInfo>
...
</ClientInfo>
</Object>
这样可以把所有的ServerInfo写到一个外部文件,读取的时候我就只需要读取这个外部的ServerInfoDetail.xml。但是有一点疑惑,就是我可否使用一个外部文件来容纳多个Object的ServerInfo的信息呢?因为按照我现阶段所知道的,当有多个Object,可能我需要多次定义<!ENTITY ServerInfoDetail SYSTEM "ServerInfoDetail.xml">,也就是说,最终需要有多个<!ENTITY>,每个<!ENTITY>引用的外部文件不同,也就是说,假设我有N个Object,那么我需要定义ServerInfoDetail1.xml、ServerInfoDetail2.xml……ServerInfoDetailN.xml这么多个外部文件,这又不符合我的期望了,请问能有好的解决办法么?

另外,如果在一个体积很大的XML文件中,我只需要更新部分信息,比如每个Object的ServerInfo中的某个Element的某个Attributte的值,这样又有什么好的方式?
...全文
101 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlkingdom 2006-04-22
  • 打赏
  • 举报
回复
利用XPath可以达到快速寻址吧,另外觉得你需要的这个XML文件结构应该是基于树结构的
Namo 2006-04-22
  • 打赏
  • 举报
回复
自己顶
star0796 2006-04-22
  • 打赏
  • 举报
回复
mark
Namo 2006-04-21
  • 打赏
  • 举报
回复
虽然可以使用xmlDocument.SelectNodes来方便选取,可是我不用DOM啊,用DOM读取大体积XML文件太慢了。

不知道我对XPath的理解正确么?
thinkc 2006-04-21
  • 打赏
  • 举报
回复
你可以查一下MSDN中XPath相关的内容。试试用xpath进行检索.
Namo 2006-04-21
  • 打赏
  • 举报
回复
什么时候CSDN也有了楼上这样不学无术占分的人?以前起码还知道打个“顶”,现在连这点体力活也省了。如果只是诸如这类回帖,我宁被扣信誉分也不结贴。
zhoujijunnt 2006-04-21
  • 打赏
  • 举报
回复
jfjfjf

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧