讓我們從我的目標開始。我需要通讀一個相當大的XML文件,並提取6個值。這些值位於我不知道如何訪問的子組中的行中。從XML讀取特定項目
下面是XML結構:
<Project Guid="9e9a67f8" Name="GameThings" Version="1.7">
<Subsystems>
<Values Name="Thing1">
<Values Name="Stuff1" Type="int" Value="0" />
<Values Name="Stuff2" Type="int" Value="5" />
</Values>
<Values Name="Thing2">
<Values Name="Top" Type="int" Value="10" />
<Values Name="Bottom" Type="int" Value="15" />
</Values>
</Subsystems>
<OtherSystems>
<Values Name="Thing3">
<Values Name="Stuff3" Type="int" Value="0" />
<Values Name="Stuff4" Type="int" Value="5" />
</Values>
</OtherSystems>
</Project>
我想在這裏做的是檢索項目的子系統 - Thing2值。這就是我需要的。我該怎麼做?
這裏是我試過的事情之一:
using (XmlTextReader reader = new XmlTextReader(Path + "Project.xml"))
{
while (reader.Read())
{
if(reader.)
}
}
但它基本上停在那裏。這裏是另外一件事,我再沒感,它主要是複製過去和我的直覺:
XmlDocument xml = new XmlDocument();
xml.LoadXml(Path + "Project.xml");
XmlNodeList nodes = xml.SelectNodes("/Project[@*]/Subsystems");
foreach(XmlNode node in nodes)
{
if(node["Name"].Value == "GameInfo")
{
foreach(XmlNode stuff in node["Name"])
{
}
}
}
同樣存在的東西。
一堆的XPath例子:h ttps://msdn.microsoft.com/en-us/library/ms256086(v = vs.110).aspx –
'我需要通讀一個相當大的XML文件,並提取6個值。'+'我' m試圖在這裏執行的是從Project-Subsystems-Thing2中檢索值。「Thing2」只有2個子節點。你需要檢索哪些'6'值,以及從哪裏獲取? – dxiv
那些最內層的「值」元素似乎沒有被正確關閉。他們不應該關閉斜線嗎?也就是'... Value =「5」/>' –