如何访问此XML字段

本文关键字:XML 字段 访问 何访问 | 更新日期: 2023-09-27 18:28:34

我想从这个XML:中提取字段yt:username

var xDoc = XDocument.Load(requestedURL);
var m_oListaMeteo = xDoc.Descendants(ns + "entry").Select(n =>
{
    return new
    {
        username = n.Element(ns + "yt:username").Value
    };
});

但是XDocument本身表示The ':' character, hexadecimal value 0x3A, cannot be included in a name.

是否需要替换字符串?或者需要我管理youtube的命名空间吗?

如何访问此XML字段

yt是命名空间,请尝试以下操作:

var xDoc = XDocument.Load(@"https://gdata.youtube.com/feeds/api/users/djfonplaz/subscriptions?v=2");
var ns = XNamespace.Get("http://www.w3.org/2005/Atom");
var yt = XNamespace.Get("http://gdata.youtube.com/schemas/2007");
var m_oListaMeteo = xDoc.Descendants(ns + "entry").Select(n =>
{
    return new
    {
        username = n.Element(yt + "username").Value
    };
});

确保使用正确的名称空间:

var xDoc = XDocument.Load(requestedURL);
var m_oListaMeteo = xDoc
    .Root
    .Elements("{http://www.w3.org/2005/Atom}entry")
    .Select(entry => new
    {
        username = entry.Element("{http://gdata.youtube.com/schemas/2007}username").Value
    });