gpt4 book ai didi

C# 应用程序不会在 XML 文档中显示最后一个属性值

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

我正在处理的 C# 项目不会在 XML 标记中显示/插入最后一个值。例如,我的应用程序遍历此标记并将获得 1、2 3 但不是 4。它在每次迭代时都这样做。

<purpose>
<intendedUse id="1"/>
<intendedUse id="2"/>
<intendedUse id="3"/>
<intendedUse id="4"/>
</purpose>

我相信它与 int num 声明有关。注意:我评论了我的 sqlite 命令,所以我不会写入数据库。我有一个消息框来显示值是什么。

 for (i = 0; i < xmlnode.Count - 1; i++ )
{
str = xmlnode[i].Attributes[0].Value;
int num = Int32.Parse(str) - 1;
for ( var count = 0; count < xmlnode[num].FirstChild.NextSibling.ChildNodes.Count - 1; count++)
{
str2 = xmlnode[num].FirstChild.NextSibling.ChildNodes[count].Attributes[0].Value;
MessageBox.Show(str2);
}

//SQLiteCommand cmd = new SQLiteCommand(connection);
//cmd.CommandText = "INSERT INTO languagePurpose (purposeID, languageID) VALUES ('" + str2 + "', '" + str + "')";
//SQLiteDataReader dr = cmd.ExecuteReader();
// MessageBox.Show(str);
}

最佳答案

这可能不是您正在寻找的答案,但在 Linq-to-XML 中这很容易。假设您将 xml 加载到名为“xml”的 XDocument 中。

for(XNode node in xml.Element("purpose").Elements("intendedUse"))
{
//sets the value of the id attribute to str2
str2 = node.Attribute("id").Value;
}

使用上述解决方案,如果不存在 id 属性,或者没有“目的”节点,您可能会遇到 NullReferenceException,但从我的示例中可以清楚地看出这个概念。

显然你可以在那里做任何你想做的事,但 LINQ-to-XML 比 XmlDocument 更容易使用,尤其是当你想学习如何进行 XML 解析时。

这是一个帮助您入门的链接:Linq-to-XML MSDN

关于C# 应用程序不会在 XML 文档中显示最后一个属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28728561/

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