gpt4 book ai didi

c# - 从 XMLDocument 中的 xml 文件读取节点

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

我正在尝试获取 TopicName 我应该如何去追求它并尝试不同的组合但是不知何故我无法获得 TopicName 下面是我的源代码...

XmlDocument xdoc = new XmlDocument();//xml doc used for xml parsing

xdoc.Load(
"http://latestpackagingnews.blogspot.com/feeds/posts/default"
);//loading XML in xml doc

XmlNodeList xNodelst = xdoc.DocumentElement.SelectNodes("content");//reading node so that we can traverse thorugh the XML

foreach (XmlNode xNode in xNodelst)//traversing XML
{
//litFeed.Text += "read";
}

示例 xml 文件

<content type="application/xml">
<CatalogItems xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="sitename.xsd">
<CatalogSource Acronym="ABC" OrganizationName="ABC Corporation" />
<CatalogItem Id="3212" CatalogUrl="urlname">
<ContentItem xmlns:content="sitename.xsd" TargetUrl="url">
<content:SelectionSpec ClassList="" ElementList="" />
<content:Language Value="eng" Scheme="ISO 639-2" />
<content:Source Acronym="ABC" OrganizationName="ABC Corporation" />
<content:Topics Scheme="ABC">
<content:Topic TopicName="Marketing" />
<content:Topic TopiccName="Coverage" />
</content:Topics>
</ContentItem>
</CatalogItem>
</CatalogItems>
</content>

最佳答案

XML 中的 Topic 节点正在使用 content 命名空间 - 您需要在代码中声明和使用 XML 命名空间,然后您可以使用 SelectNodes () 获取感兴趣的节点 - 这对我有用:

XmlNamespaceManager nsmgr = new XmlNamespaceManager(xdoc.NameTable);
nsmgr.AddNamespace("content", "sitename.xsd");

var topicNodes = xdoc.SelectNodes("//content:Topic", nsmgr);

foreach (XmlNode node in topicNodes)
{
string topic = node.Attributes["TopicName"].Value;
}

作为比较,看看使用 Linq to XML 这将是多么容易:

XDocument xdoc = XDocument.Load("test.xml");
XNamespace ns = "sitename.xsd";
string topic = xdoc.Descendants(ns + "Topic")
.Select(x => (string)x.Attribute("TopicName"))
.FirstOrDefault();

要获取所有主题,您可以将最后一条语句替换为:

var topics = xdoc.Descendants(ns + "Topic")
.Select(x => (string)x.Attribute("TopicName"))
.ToList();

关于c# - 从 XMLDocument 中的 xml 文件读取节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7450760/

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