【发布时间】:2017-07-25 12:20:45
【问题描述】:
我有 IEnumerable<XElement> theTestCaseNodes,它有以下类型的 XElements
<testcase>
<Main>
<test_step type ="action">
<Name>Goto</Name>
<description>xxxxxxxxx</description>
</test_step>
<test_step type ="check">
<Name>Click</Name>
<description>xxxxxxxxx</description>
</test_step>
</Main>
</testcase>
<testcase>
<Main>
<test_step type ="action">
<Name>Goto</Name>
<description>xxxxxxxxx</description>
</test_step>
<test_step type ="check">
<Name>Type</Name>
<description>xxxxxxxxx</description>
</test_step>
</Main>
</testcase>
基本上这是我的测试用例,我想按顺序执行它们。 所以,现在我想使用 XMLReader 读取 IEnumerable 中的每个节点。
请帮助如何进行!
我知道我需要使用“使用”,但不知道如何进行。
public void ExecuteTestcase(IEnumerable<XElement> theTestCaseNodes)
{
using (XmlReader aNodeReader = XmlReader.ReadSubtree()) {
}
}
【问题讨论】:
-
您可以将您的 xml 写入一个字符串,在其上创建一个
StringReader并将其传递给XmlReader。请注意,您必须在using中Create阅读器,然后您可以调用实例方法,例如ReadSubtree。 -
为什么你想使用 XmlReader?用于将文本转换为 DOM,但您已经拥有 DOM 级别的元素。
-
@HenkHolterman,请让我了解更多。我是 XML 新手。我想在这里使用 XMLReader,因为我想按顺序进行。步骤有两种类型,“type=Action”和“type=check”,我想按顺序阅读。
-
整个顺序的概念在 XML 中有点棘手,但
xElement.Elements("test_step")应该可以满足您的需求。
标签: c# linq-to-xml xmlreader xelement system.xml