gpt4 book ai didi

C# xml 阅读器,相同的元素名称

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

我正在尝试从我的 xml 文件中读取一个元素。我需要读取“元数据”内“链接”元素中的字符串,但是有两个元素叫做“链接”,我只需要第二个:

<metadata>
<name>visit-2015-02-18.gpx</name>
<desc>February 18, 2015. Corn</desc>
<author>
<name>text</name>
<link href="http://snow.traceup.com/me?id=397760"/>
</author>
<link href="http://snow.traceup.com/stats/u?uId=397760&amp;vId=1196854"/>
<keywords>Trace, text</keywords>

我需要阅读这一行:

<link href="http://snow.traceup.com/stats/u?uId=397760&amp;vId=1196854"/>

这是第一个“链接”标签的工作代码,它工作正常,

        public string GetID(string path)
{
string id = "";
XmlReader reader = XmlReader.Create(path);
while (reader.Read())
{
if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "link"))
{
if (reader.HasAttributes)
{
id = reader.GetAttribute("href");
MessageBox.Show(id + "= first id");
return id;
//id = reader.ReadElementContentAsString();
}
}
}
return id;
}

有谁知道如何跳过第一个“链接”元素?或者检查 reader.ReadElementContentAsString() 是否包含“Vid”或类似的东西?

我希望你能帮助我。

最佳答案

xpath 就是答案:)

        XmlReader reader = XmlReader.Create(path);
XmlDocument doc = new XmlDocument();
doc.Load(reader);
XmlNodeList nodes = doc.SelectNodes("metadata/link");
foreach(XmlNode node in nodes)
Console.WriteLine(node.Attributes["href"].Value);

关于C# xml 阅读器,相同的元素名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33677820/

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