工控编程吧
标题:
C#SelectSingleNode函数一直失败的原因分析与解决
[打印本页]
作者:
qq263946146
时间:
2021-10-13 18:50
标题:
C#SelectSingleNode函数一直失败的原因分析与解决
(, 下载次数: 4)
上传
点击文件名下载附件
之前一直使用MFC,可以方便快速的获取一xml节点下指定名称的子节点,方便快速。
便用上C#后,感觉一切都复杂了。
或许其扩展了众多功能,兼顾的方便多了,所以用起来要些时间适应。
所以这不,我想用XmlDocument类的成员函数SelectSingleNode实现相同功能,
怎么都无法成功。
经过手动创建不同内容的的XML文件,终于正常调用SelectSingleNode函数。
0.先记录过程吧,方法在后边。
我要处理的文件内容如下,通过代码调用一直失败
<PasswordInfo xmlns="<font color="#444444" face="Tahoma, Arial, Helvetica, sans-serif">http://ns.test.com/resumes</font>" xmlns:i="<span style="color: rgb(68, 68, 68); font-family: Tahoma, Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">http://ns.test.com/resumes</span>/XMLSchema-instance">
复制代码
//通过此代码地直无法正常读取上边内容的文件节点;
复制代码
然后我随意创建一测试XML文件,内容如下,可正常调用SelectSingleNode,
所以关键问题是多出的部分,查阅相关帖子,解决问题,新事物总是要折腾才有进步。
<PasswordInfo>
<IsFuck>true</IsFuck>
<Password>bcb15f821479b4d5772bd0ca866c00ad5f926e3580720659cc80d39c9d09802a</Password>
</PasswordInfo>
复制代码
啥是 xmlns。xmlns,是xml namespace的缩写。
在xml中,所有的元素都是自己定义的,当两个不同的文档使用相同的元素名时,
xml paser就不知道该去解析哪个,就会发生命名冲突。
所以需要一种区分的手段,xml中使用namespace进行区分,唯一确定一个元素,类似于c++中的namespace。
1. 那么如何搞定?
那就很简单了。如上xml文件内容可通过下边代码正常调用SelectSingleNode
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(sProjectSettingFile);
复制代码
其实还忽略了一个xmlns:i,
xmlns:x 属性指示另外一个 xmlns 命名空间,
该命名空间映射 XAML 语言命名空间
http://schemas.microsoft.com/winfx/2006/xaml
。
在具有此映射的文件的标记中引用时,XAML 规范定义的所需语言组件带有 x: 前缀。
能正常使用,就没精力去理会这个命名空间。
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4