请大家看看这种xml文档如何找到相应节点DOM

rottenapple 2004-03-17 11:37:47
<?xml version="1.0" encoding="utf-8"?>
<soap>
<soapbody>
<?xml version="1.0" encoding="utf-8"?>
<Msg>...</Msg>
</soapbody>
</soap>

上面的这段xml文档中间的soapbody节点包含了另一个xml文档信息
现在我想用DOM方式找到Msg节点,请问有没有直接处理的方法
使用SelectSingleNode("Msg");好像不可以,不知道为什么。
是不是两个xml文档嵌套在一起会有问题?
我目前的方法是先找到soapbody节点,但后重新load()soapbody中的xml文档,谁知道还有没有好的方法?
...全文
97 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2004-03-17
  • 打赏
  • 举报
回复
try:
xmlDocumentObject.getElementByTagName("Msg").InnerText

xmlDocumentObject.SelectSingleNode("//Msg").InnerText是可以的
rottenapple 2004-03-17
  • 打赏
  • 举报
回复
发现了个奇怪的事情
如果xml文件如下:
<?xml version="1.0" encoding="utf-8"?>
<soap>
<soapbody>
<action>
<xmlrequest>
<?xml version="1.0" encoding="utf-8" ?>
<Msg ns="1">
<name>chen</name>
</Msg>
</xmlrequest>
</action>
</soapbody>
</soap>
node = doc.SelectSingleNode("//Msg");就可以找到节点
如果把xml文件中的<Msg ns="1">换成<Msg xmlns="1">就找不到节点,为什么?难道是因为我使用了xmlns这个默认的namespace?
rottenapple 2004-03-17
  • 打赏
  • 举报
回复
xmlDocumentObject.SelectSingleNode("//Msg")
是找不到这个节点的。(也许这里面可以,我没有试验过)
上面的xml文档只是我简化的,原本是从web services中的envelope.InnerXml得到的
我用遍历的方法可以得到这个节点,但是用上面的方法就找不到(两种都试验过了)

另外,孟子,我从.net ide中用断点得到的变量值都有转意符号在里面,例如:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
这样的话我想格外测试这个xml片段的时候用load(filename)就会提示\错误,不知道有没有好的方法。

8,909

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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