ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c# – 我可以从我要阅读的xml文件中创建一个XmlNamespaceManager对象吗?

2019-06-21 14:55:46  阅读:134  来源: 互联网

标签:c xml sharepoint infopath


我在sharepoint上运行了一些c#代码,用于检查infopath文档的xml内部以查看是否应该检查文档或丢弃文档.

代码适用于我创建的几个不同的表单模板,但是在我的备用表单模板上失败了.
我发现我正在创建的XmlNamespaceManager包含“MY”namepsace的错误diff definition.

我会试着解释一下

我有这个代码来decalre我的XmlNamespaceManager

NameTable nt = new NameTable();
NamespaceManager = new XmlNamespaceManager(nt);

// Add prefix/namespace pairs to the XmlNamespaceManager.
NamespaceManager.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
NamespaceManager.AddNamespace("xhtml", "http://www.w3.org/1999/xhtml");
NamespaceManager.AddNamespace("dfs", "http://schemas.microsoft.com/office/infopath/2003/dataFormSolution");            
NamespaceManager.AddNamespace("my", "http://schemas.microsoft.com/office/infopath/2003/myXSD/2010-07-14T13:45:59");
NamespaceManager.AddNamespace("xd", "http://schemas.microsoft.com/office/infopath/2003");`

然后我可以使用以下代码行来搜索我之后的xml

XPathNavigator nav = xml.CreateNavigator().SelectSingleNode("//my:HasSaved", NamespaceManager);

nav.Value然后得到我想要的数据.

这一切都适用于我的几个表单模板.我有一个新的表单模板,并发现我需要使用该行代替

NamespaceManager.AddNamespace("my", "http://schemas.microsoft.com/office/infopath/2003/myXSD/2010-11-30T17:39:37");

日期不同.

我的问题是我不能添加两次,因为只有一组表格可以工作.

所以我的问题是.有没有办法可以从XML文件生成NamespaceManager对象,因为这些都包含在标题中?
我一直无法找到一个简单的方法.

解决方法:

我找到了一种方法.它可以从XmlDocument对象中提取,而不是添加“my”命名空间.这可能只是运气,它以这种方式工作,但我很高兴.

NamespaceManager.AddNamespace("my", formXml.DocumentElement.NamespaceURI

formXML是从infopath XML创建的XmlDocument

标签:c,xml,sharepoint,infopath
来源: https://codeday.me/bug/20190621/1256362.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有