- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是我的代码:
XmlTextReader reader = new XmlTextReader(xmlPath);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(reader);
XmlNode root = xmlDoc.DocumentElement;
XmlNode node = root.SelectSingleNode("marketingid");
有效的 XML:
<confirmsubmit>
<marketingid>-1</marketingid>
</confirmsubmit>
无效的 XML:
<confirmsubmit xmlns="http:....">
<marketingid>-1</marketingid>
</confirmsubmit>
xmlns属性的处理方式是什么,如何解析?
和命名空间有关系吗?
编辑:这是有效的代码:
XmlTextReader reader = new XmlTextReader(xmlPath);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(reader);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmlDoc.NameTable);
nsmgr.AddNamespace("ns", xmlDoc.DocumentElement.NamespaceURI);
XmlNode book = xmlDoc.SelectSingleNode("/ns:confirmsubmit/ns:marketingid", nsmgr);
所有的 XPath 比看起来要复杂得多,我建议像我这样的初学者阅读:http://www.w3schools.com/xpath/xpath_syntax.asp
最佳答案
您需要在游戏中添加一个XmlNamespaceManager 实例,如本例所示来自documentation :
public class Sample
{
public static void Main()
{
XmlDocument doc = new XmlDocument();
doc.Load("booksort.xml");
//Create an XmlNamespaceManager for resolving namespaces.
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("bk", "urn:samples");
//Select and display the value of all the ISBN attributes.
XmlNodeList nodeList;
XmlElement root = doc.DocumentElement;
nodeList = root.SelectNodes("/bookstore/book/@bk:ISBN", nsmgr);
foreach (XmlNode isbn in nodeList){
Console.WriteLine(isbn.Value);
}
}
}
关于c# - XmlDocument - 带有命名空间的 SelectSingleNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22535102/
在验证 XML 文件中的 ID 时,它区分大小写。我添加了“翻译”以使其不区分大小写。以下是我的代码: $Config = "xmlfile" [xml]$configxml = Get-Conten
我一直在查看 SO 并发现许多问答可能是同一类型的问题,但我无法正常工作,我做错了什么。 当我提取某个 我试过像这样使用 lower-case() 函数, HtmlNode ctnode = htm
我正在使用 C# (.NET 2.0)——实际上是在尝试使用 MONO 让它在 Mac OS X 上工作(我不认为 MONO 是问题所在) 给定以下 XML 片段,该片段已从更大的 XmlDocume
我正在使用 .Net 2.0,并且需要从我的 XmlDocument 中 SelectSingleNode 而不管命名空间,这听起来可能是错误的。 具体一点 XmlElement slipType =
我在 MSXML 中选择带有命名空间的节点时遇到了问题。 XML 已由 ADODB 记录集生成,如下所示:
我需要获取缺少特定参数的xml节点。假设我有以下c:\ temp \ a.xml: C:\file_myproduct C:\file_general 如何获取没有属性的C:\ file_
这是我用来在Sharepoint列表项的DOM文档中查找某个节点的内部文本的代码: 'parse XML of a list item to get the field value Private F
private const string TECHACCOUNTAMTITEM_AMT_XPATH = @"//Part[translate(@Type, 'ABCDEFGHIJKLMNOPQRSTU
您好,我有在 app.exe.config 文件中创建/更新字段的功能 public static void UpdateConfig(string FieldName, string
我有一个 XML 文件,其中包含两个同名节点,并且需要验证第一个节点是否存在。我正在尝试使用 SelectSingleNode,我发现了一些 XPath 示例。 XML文件
在使 NodeList.SelectSingleNode() 正常工作时遇到问题。我的 XML 如下所示: fileN
感谢阅读我的帖子。我正在尝试从以下 xml 文件加载 FFTExe 的值,但它的节点返回 null。 这是我用来读取xml的代码 const string CMD_FFT = "/Comman
以我的 XML 的这个简化示例为例: Invalid Login 我正在尝试使用 SelectSingleNode 方法选择“错误”节点,但是使用以下代码它总是返回 NULL? XmlNode
我正在解析一个 xml 文档,我需要找出 gid(一个属性)值 (3810)。 基于 SelectSingleNode()。我发现要找到属性名称及其值并不容易。 我可以使用这种方法还是必须切换到另一种
这是我的代码: XmlTextReader reader = new XmlTextReader(xmlPath); XmlDocument xmlDoc = new XmlDocument(); x
我正在尝试解析该字段,但无法正常工作。当前尝试: var name = doc.DocumentNode.SelectSingleNode("//*[@id='my_name']").InnerHtm
我的问题是这样的。假设我有这样的 xml Value1 Value2 Value1 Value2 Value3 我有一个方法获取参数
这个问题是已回答问题的后续问题: XmlDocument.SelectSingleNode and prefix + xmlNamespace issue 问题是将来收到的 xml 的命名空间前缀可能
private void toolStripButton2_Click(object sender, EventArgs e) { XmlTextReader reader = new
我是个新手,但最近我一直在研究解析一些 XML 数据。我实际上在这个网站上发现了一个很好的功能,我可以通过以下方式到达具有特定属性的特定节点: docFoo.SelectSingleNode("foo
我是一名优秀的程序员,十分优秀!