gpt4 book ai didi

C# XML 解析 - 查找元素的位置并读取下一个元素

转载 作者:太空宇宙 更新时间:2023-11-03 10:54:20 24 4
gpt4 key购买 nike

您好,我有一个示例 xml,如下所示

<ROOTELEMENT>
<RECORDSET>
<ROW><VALUE>AAA</VALUE></ROW>
<ROW><VALUE>0</VALUE></ROW>
<ROW><VALUE>00</VALUE></ROW>
<ROW><VALUE>BBB</VALUE></ROW>
<ROW><VALUE>1</VALUE></ROW>
<ROW><VALUE>2</VALUE></ROW>
<ROW><VALUE>CCC</VALUE></ROW>
<ROW><VALUE>3</VALUE></ROW>
<ROW><VALUE>30</VALUE></ROW>
</RECORDSET>
<RECORDSET>
<ROW><VALUE>DDD</VALUE></ROW>
<ROW><VALUE>4</VALUE></ROW>
<ROW><VALUE>40</VALUE></ROW>
<ROW><VALUE>EEE</VALUE></ROW>
<ROW><VALUE>5</VALUE></ROW>
<ROW><VALUE>6</VALUE></ROW>
<ROW><VALUE>FFF</VALUE></ROW>
<ROW><VALUE>7</VALUE></ROW>
<ROW><VALUE>70</VALUE></ROW>
</RECORDSET>
</ROOTELEMENT>

我必须获得具有某些值的特定 ROW 的位置。之后,我必须从该位置开始读取指定数量的行的值。例如:如果我给一些值作为“BBB”,为此我必须得到接下来的两个值“1”和“2”。如果我给一些值作为“FFF”,为此我必须得到接下来的两个值“7”和“70”。我正在使用.Net framework2.0。我不能使用 LINQ。请帮助我。

最佳答案

您可以使用下面的代码。它遍历节点并将您期望的值存储在 foundValues

string valueToFind = "FFF";
string xml = @"<ROOTELEMENT>
<RECORDSET>
<ROW><VALUE>AAA</VALUE></ROW>
<ROW><VALUE>0</VALUE></ROW>
<ROW><VALUE>00</VALUE></ROW>
<ROW><VALUE>BBB</VALUE></ROW>
<ROW><VALUE>1</VALUE></ROW>
<ROW><VALUE>2</VALUE></ROW>
<ROW><VALUE>CCC</VALUE></ROW>
<ROW><VALUE>3</VALUE></ROW>
<ROW><VALUE>30</VALUE></ROW>
</RECORDSET>
<RECORDSET>
<ROW><VALUE>DDD</VALUE></ROW>
<ROW><VALUE>4</VALUE></ROW>
<ROW><VALUE>40</VALUE></ROW>
<ROW><VALUE>EEE</VALUE></ROW>
<ROW><VALUE>5</VALUE></ROW>
<ROW><VALUE>6</VALUE></ROW>
<ROW><VALUE>FFF</VALUE></ROW>
<ROW><VALUE>7</VALUE></ROW>
<ROW><VALUE>70</VALUE></ROW>
</RECORDSET>
</ROOTELEMENT>";

XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);

int count = 0;
List<string> foundValues = new List<string>();
foreach (XmlNode root in doc.ChildNodes)
foreach (XmlNode recorset in root.ChildNodes)
foreach (XmlNode row in recorset.ChildNodes)
foreach (XmlNode value in row.ChildNodes)
{
if (value.InnerText == valueToFind || count == 1 || count == 2)
{
if (count == 1 || count == 2)
foundValues.Add(value.InnerText);
count++;
}
}

关于C# XML 解析 - 查找元素的位置并读取下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20063151/

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