gpt4 book ai didi

c# - 无法使用 xmlns 值解析 XML

转载 作者:数据小太阳 更新时间:2023-10-29 02:50:58 24 4
gpt4 key购买 nike

我收到一个 XML 文件,该文件在根节点上分配了一个 xmlns 命名空间:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Message xmlns="http://www.myAddress.com/DataRequest/message/">
<Date>2017/01/01</Date>
</Message>

我不知道如何使用 XPath 检索日期元素,我试过了

  var root = xDocument.Root;
var dateElement = root.XPathSelectElement("/Message/Date");

如果我从根 xml 中删除命名空间,那么我可以使用“/Message/Date”检索值。

我试图将 xmlns 添加到 XmlNamespaceManager,但出现此错误:

Prefix "xmlns" is reserved for use by XML.

如何获取值?

最佳答案

指定元素名称时应使用命名空间。使用 XElement.GetDefaultNamespace() 很容易获得默认 namespace 方法:

var ns = root.GetDefaultNamespace();
var dateElement = (DateTime)root.Element(ns + "Date");

如果你想使用 XPath:

XmlNamespaceManager manager = new XmlNamespaceManager(new NameTable());
manager.AddNamespace("ns", root.GetDefaultNamespace().ToString());
var dateElement = (DateTime)root.XPathSelectElement("/ns:Message/ns:Date", manager);

关于c# - 无法使用 xmlns 值解析 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43256839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com