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

C#应用程序不会在XML文档中显示最后一个属性值,c#,xml,C#,Xml,我正在处理的C#项目不会在XML标记中显示/插入最后一个值。 例如,我的应用程序迭代这个标记,将得到1,2,3,但不是4。它在每次迭代中都这样做 <purpose> <intendedUse id="1"/> <intendedUse id="2"/> <intendedUse id="3"/> <intendedUse id="4"/> </purpose> 这可能不是您要寻找的答案,但在LINQtoXML中,这

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

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

这可能不是您要寻找的答案,但在LINQtoXML中,这非常简单。假设您将xml加载到名为“xml”的
XDocument

使用上面的解决方案,如果不存在id属性,或者没有“purpose”节点,您可能会有一个
NullReferenceException
,但是从我的示例中,这个概念应该非常清楚

显然,您可以在这里做任何您想做的事情,但是linqtoxml比
XmlDocument
更容易使用,特别是当您试图学习如何进行XML解析时


这里有一个让您开始的链接:

这可能不是您想要的答案,但在Linq to XML中,这非常简单。假设您将xml加载到名为“xml”的
XDocument

使用上面的解决方案,如果不存在id属性,或者没有“purpose”节点,您可能会有一个
NullReferenceException
,但是从我的示例中,这个概念应该非常清楚

显然,您可以在这里做任何您想做的事情,但是linqtoxml比
XmlDocument
更容易使用,特别是当您试图学习如何进行XML解析时


这里有一个链接可以帮助您入门:

找到了答案。我应该删除中的
-1

count < xmlnode[num].FirstChild.NextSibling.ChildNodes.Count - 1`
count

直到@Nadia在我的第一个for循环中提到它,我才注意到,我习惯性地添加了
-1

找到了答案。我应该删除中的
-1

count < xmlnode[num].FirstChild.NextSibling.ChildNodes.Count - 1`
count

直到@Nadia在我的第一个for循环中提到它,我才注意到,我习惯性地添加了
-1

你为什么不使用LinqToXML?这是一个学习XML的项目。这与你的问题无关,但我可以从你的注释代码中看出,你是在将变量直接引入SQL语句中……千万不要这样做!改为在sql中使用参数@JNYRanger是个好建议。谢谢。只需尝试
i
而不使用-1,因为这是从0到2的循环(我知道你不使用LinqToXML的原因是什么?这是一个学习XML的项目。这与你的问题无关,但我可以从你注释掉的代码中看出,你是在SQL语句中直接引入变量……千万不要这样做!在SQL语句中使用参数。@JNYRanger这是一个很好的提示。谢谢。只要不使用参数,试试
i
)-1,因为它是从0循环到2(i
count < xmlnode[num].FirstChild.NextSibling.ChildNodes.Count - 1`