- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一些在 sharepoint 上运行的 C# 代码,我用它来检查 infopath 文档的 xml 内部,看看我是否应该检查文档或丢弃文档。
代码在我创建的几个不同的表单模板上运行良好,但在我最新的表单模板上运行失败。我发现我正在创建的 XmlNamespaceManager 包含错误的“MY”命名空间。
我会尽力解释
我有这段代码来标记我的 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 对象中提取,而不是添加“我的” namespace 。以这种方式工作可能只是有点运气,但我对此很满意。
NamespaceManager.AddNamespace("my", formXml.DocumentElement.NamespaceURI
formXML 是从信息路径 XML 创建的 XmlDocument
关于c# - 我可以从我将要读取的 xml 文件创建一个 XmlNamespaceManager 对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4659119/
对于为什么(至少在 .Net Framework 中),我已经有点干巴巴地想出了为什么有必要使用 XmlNamespaceManager 。为了在执行 XPath 查询时处理 namespace (或
我不想再问 XPath/XmlNamespaceManager 问题,但我似乎无法弄明白。 我使用了 XpathVisualizer 工具,它可以使用 XPath“//FuelGradeMovemen
因此,当我使用 selectSingleNode 获取空值时,我发现我需要声明一个 namespace ,因为我正在使用 xmlns 属性。我的问题是,如果我不在 xml 文件本身中使用前缀,为什么在
我正在尝试使用 XmlNamespaceManager 将 namespace 添加到 XmlDocument。这是当前的 xml: 我希望它转换为这个 xml(
我正在尝试从 XML File 中读取数据.在此元素中,前缀为“app”和“gml”文本。由于这些前缀,我无法读取数据。为此,我试图通过使用 XMLNamespaceManager 但没有获取来添加命
多年来,我一直在寻找一种方法来从具有多个命名空间的 XmlNode(不是 XmlDocument)中选择节点。 几乎我搜索过的每篇帖子都建议我使用 XmlNamespaceManager,但是,Xml
我有一些在 sharepoint 上运行的 C# 代码,我用它来检查 infopath 文档的 xml 内部,看看我是否应该检查文档或丢弃文档。 代码在我创建的几个不同的表单模板上运行良好,但在我最新
我有一些带有默认命名空间的 xml 并想统计 的数量 我该如何定义 XmlNamespaceManager nsmgr = ???? Assert.AreEqual(2, doc.SelectNo
我正在尝试测试如下所示的 XML 文档(在本例中为 SAML):
我正在尝试阅读以下内容并在其中选择一个节点 . XmlDocument document = new XmlDocument(); document.Load(Ser
我正在将一个旧的 .dll 重写到 net.core (1.1.1) 中,其中一种方法创建了一个 XmlDocument 并通过 XmlNamespaceManager 定义了命名空间: var ns
我是一名优秀的程序员,十分优秀!