C# 如何循环遍历XML文件中的节点
我有一个XML文件,其结构大致如下:C# 如何循环遍历XML文件中的节点,c#,xml,wpf,C#,Xml,Wpf,我有一个XML文件,其结构大致如下: <ScenarioList> <Scenario> ... various things </Scenario> </ScenarioList> XmlDocument xml = new XmlDocument(); xml.LoadXml("your xml"); XmlNodeList list = xml.SelectNodes("/ScenarioList/Sce
<ScenarioList>
<Scenario>
... various things
</Scenario>
</ScenarioList>
XmlDocument xml = new XmlDocument();
xml.LoadXml("your xml");
XmlNodeList list = xml.SelectNodes("/ScenarioList/Scenario");
foreach (XmlNode xn in list)...
这将被读入WPF对话框。每次用户选择“下一步”时,我都希望将下一个场景数据读入各个字段。显然,用户点击“最后一个”按钮也是一样的
但问题是:我如何读取来自所选场景节点的信息
让我尝试澄清这个问题,因为它似乎“过于宽泛”:
我熟悉加载和读取整个XML文件。我只想有选择地读取特定节点。例如:如何仅读取第一个场景节点的数据?然后,根据用户输入,只读取第二个场景节点的数据?然后,根据用户输入,只读取第一个场景节点的数据?还是仅仅是第三个场景节点
本质上,我是在问,既然XML没有“索引”,如何指定要读取的节点实例?首先需要将XML加载到XmlDocument中,然后可以选择特定的节点并对其进行迭代,如下所示:
<ScenarioList>
<Scenario>
... various things
</Scenario>
</ScenarioList>
XmlDocument xml = new XmlDocument();
xml.LoadXml("your xml");
XmlNodeList list = xml.SelectNodes("/ScenarioList/Scenario");
foreach (XmlNode xn in list)...
您可以使用JXPath遍历到节点。 如果需要计算相对于对象图中某个节点的多个路径,则可能需要创建一个相对JXPathContext 首先,获取应该是相对上下文的根的位置的指针。然后通过调用
JXPathContext context = JXPathContext.newContext(bean);
Pointer addressPtr = context.getPointer("/employees[1]/addresses[2]");
JXPathContext relativeContext =
context.getRelativeContext(addressPtr);
// Evaluate relative path
String zipCode = (String)relativeContext.getValue("zipCode");
// Evaluate absolute path
String name = (String)relativeContext.getValue("/employees[1]/name");
// Use the parent axis to locate the employee for the current address
Double salary = (Double)relativeContext.getValue("../salary");
您可以从中了解更多详细信息您是否熟悉XPath之类的东西,或者您是否想过在C上执行简单的google搜索如何从XML文件中读取/检索值现在开始。。也许这对你有帮助这太宽泛了,真的。看一下LINQtoXML,当您有一个特定的问题时再回来。我想问的是,如何在没有索引的情况下读取节点的特定实例?如果这是一个数组,我想阅读场景[3]。我怎样才能只阅读场景列表/场景的第三个实例?是的!这几乎是我一字不差地写的。但是,我如何阅读所需的/场景列表/场景?比方说,我想阅读这个/ScenarioList/场景的第三个实例。如何读取此实例?传入索引列表[2]