怎么判断Xml文件中是否已经含有某个节点???

sundl2268 2010-04-19 11:11:17
怎么判断Xml文件中是否已经含有某个节点???
我想利用xml中保存的标志变量来决定程序的执行路径。

但是为了和原来的较早的xml文件兼容,里面没有我要设置的的xml节点,用于保存标志变量的。
我的想法是首先得判断一下是否已经含有该该节点,没有的话则用程序加上
...全文
632 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sundl2268 2010-04-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sczyq 的回复:]
首先判断一下是否已经含有该该节点,没有的话就使用默认值,就不用关心什么版本了,也不用加。


String __fastcall ReadChlidString(_di_IXMLNode Node, String TagName, String DefValue)
{
String Result = DefValue;
_di_IXMLNode ANode = Node->Ch……
[/Quote]
好,我去试试,FindNode
Returns a specified node from the list.

virtual _di_IXMLNode __fastcall FindNode(DOMString NodeName) = 0;
virtual _di_IXMLNode __fastcall FindNode(DOMString NodeName, DOMString NamespaceURI) = 0;
virtual _di_IXMLNode__fastcall FindNode(TGuid CildNodeType) = 0;
原来是IXMLNodeList的方法

sundl2268 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yeyanbin 的回复:]
可以用selectsinglenode,具体可以参考判断XML里是否存在某个节点http://www.cnblogs.com/guoyz/archive/2007/12/02/980089.html
[/Quote]

我在帮助文档里面就找不到这样的方法,VCL里面有这样的方法吗?
sczyq 2010-04-20
  • 打赏
  • 举报
回复
首先判断一下是否已经含有该该节点,没有的话就使用默认值,就不用关心什么版本了,也不用加。


String __fastcall ReadChlidString(_di_IXMLNode Node, String TagName, String DefValue)
{
String Result = DefValue;
_di_IXMLNode ANode = Node->ChildNodes->FindNode(TagName);

if (ANode) // 有节点。
Result = ANode->Text;
return Result;
}


int __fastcall ReadChlidInteger(_di_IXMLNode Node, String TagName, int DefValue)
{
int Result = DefValue;
_di_IXMLNode ANode = Node->ChildNodes->FindNode(TagName);

if (ANode) // 有节点。
Result = ANode->Text.ToIntDef(DefValue);
return Result;
}
YeBinYe 2010-04-19
  • 打赏
  • 举报
回复
在TXMLDocument里可以访问XML的各个节点,用IXMLNode 递归访问各节点的子节点然后进行对比判断
sundl2268 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yeyanbin 的回复:]
可以用selectsinglenode,具体可以参考判断XML里是否存在某个节点http://www.cnblogs.com/guoyz/archive/2007/12/02/980089.html
[/Quote]
先去看看再说
YeBinYe 2010-04-19
  • 打赏
  • 举报
回复
可以用selectsinglenode,具体可以参考判断XML里是否存在某个节点http://www.cnblogs.com/guoyz/archive/2007/12/02/980089.html
sundl2268 2010-04-19
  • 打赏
  • 举报
回复
进行对比判断是判断 节点的名称吗?
能不能进行节点名称的判断???

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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