jjzjj

XmlNamespaceManager

全部标签

c# - 使用 XmlNamespaceManager 从 XmlNode 中选择

多年来,我一直在寻找一种方法来从具有多个命名空间的XmlNode(不是XmlDocument)中选择节点。几乎我搜索过的每篇帖子都建议我使用XmlNamespaceManager,但是,XmlNamespaceManager需要一个XmlNameTable,它不存在一个XmlNode。我尝试使用XmlDocument执行此操作并且它有效,因为XmlDocument具有属性XmlDocument.NameTable但它对于XmlNode不存在。我尝试手动创建一个NameTable,但它不起作用,因为当我使用XmlDocument时,同一段代码起作用。我想我需要用某些东西填充该NameTa

c# - 尽管使用 XmlNamespaceManager,XPATH SelectSingleNode 仍返回 null

我正在尝试测试如下所示的XML文档(在本例中为SAML):DigestValueGoesHere!SignatureValueGoesHere!X509CertificateGoesHere!为此,我创建了一些扩展,试图用它们来测试XML:publicstaticclassXmlExtensions{publicstaticXmlNodeSignature(thisXmlDocumentdocument){returndocument.SelectSingleNodeFromDocumentRoot(@"/saml2p:LogoutRequest/Signature");}privat

c# - 我可以从我将要读取的 xml 文件创建一个 XmlNamespaceManager 对象吗?

我有一些在sharepoint上运行的C#代码,我用它来检查infopath文档的xml内部,看看我是否应该检查文档或丢弃文档。代码在我创建的几个不同的表单模板上运行良好,但在我最新的表单模板上运行失败。我发现我正在创建的XmlNamespaceManager包含错误的“MY”命名空间。我会尽力解释我有这段代码来标记我的XmlNamespaceManagerNameTablent=newNameTable();NamespaceManager=newXmlNamespaceManager(nt);//Addprefix/namespacepairstotheXmlNamespaceMa

xml - XPath 和 Powershell - 默认命名空间

我有以下PowerShell函数:functiongetProjReferences([string]$projFile){#Returnsnothing$Namespace=@{ns="http://schemas.microsoft.com/developer/msbuild/2003";};$Xml=Select-Xml-Path$projFile-Namespace$Namespace-XPath"//ns:Project/ItemGroup/Reference"#Returnsnothing[xml]$xml=Get-Content-Path$projFile[System.

c# - 使用 XmlNamespaceManager 将命名空间添加到 XmlDocument

我正在尝试使用XmlNamespaceManager将namespace添加到XmlDocument。这是当前的xml:我希望它转换为这个xml(使用XmlNamespaceManager):但我无法更改xml。这是代码,我知道它应该很容易修复:publicvoidaddXmlns(){stringxml=@"";varxmldoc=newXmlDocument();xmldoc.LoadXml(xml);XmlNamespaceManagernsmgr=newXmlNamespaceManager(xmldoc.NameTable);//Addthenamespacesnsmgr.A

c# - 在 C# 中使用 xmlnamespacemanager 添加命名空间

我正在尝试从XMLFile中读取数据.在此元素中,前缀为“app”和“gml”文本。由于这些前缀,我无法读取数据。为此,我试图通过使用XMLNamespaceManager但没有获取来添加命名空间。编辑:XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load(newStringReader(strResult));NameTablent=newNameTable();XmlNamespaceManagerprefix=newXmlNamespaceManager(nt);stringnmspc=xmlDoc.DocumentElement.Name

c# - 我如何列出 XML 中的所有 namespace ?

我的基本要求是从XML文件中获取元素值,我使用了XMLDoxument.SelectSingleNode。我的XML文件在header中包含一些命名空间,因此我使用NameSpaceManager添加命名空间前缀,并使用前缀来获取该特定元素。现在,在我的XML文件中,命名空间正在发生变化,我不想进行任何硬编码,有什么方法可以找出所有命名空间并将其添加到NameSpaceManager。谢谢。 最佳答案 命名空间可以在xml文档中的任何地方找到。因此,为了提取所有namespace并将它们声明到XmlNamespaceManager中

c# - 通过 XmlNamespaceManager 具有默认命名空间的 Xml-SelectNodes 无法按预期工作

我有一些带有默认命名空间的xml并想统计的数量我该如何定义XmlNamespaceManagernsmgr=????Assert.AreEqual(2,doc.SelectNodes("//b",nsmgr).Count);以便断言变为真?到目前为止我已经尝试过(使用nunit):[Test][Ignore("Whydoesthisnotwork?")]publicvoid__DoesNotWork_TestSelectWithDefaultNamespace(){//xmltoparsewithdefaultnamespacestringxml=@"";XmlDocumentdoc=

c# - 包含 namespace 的 XML 元素的 XDocument 或 XElement 解析

我尝试读取从log4netUdpAppender捕获的以下字符串。Logentry103当尝试XElement.Parse或XDocument.Parse内容时,它会抛出异常:'log4net'isanundeclarednamespace.Line1,position2.我知道我可以搜索并替换原始字符串中的“log4net:”并将其删除,这样我就可以成功解析XML,但有没有更好的方法?这是捕获的完整数据(重新格式化以供阅读),没有创建或删除xml命名空间声明。 最佳答案 首先,创建一个XmlNamespaceManager类的实例

c# - 提供了 XmlNamespaceManager,但仍然得到 "Namespace Manager or XsltContext needed"

我正在尝试阅读以下内容并在其中选择一个节点.XmlDocumentdocument=newXmlDocument();document.Load(Server.MapPath("order.xml"));XmlNamespaceManagermanager=newXmlNamespaceManager(document.NameTable);manager.AddNamespace("ns1","http://xxxxxxSomeURLXXXX");query="/ns1:OrderInfo/pricing";XmlNodeListnodeList=document.SelectNod
12