0

我正在查询一个 Xelement 并尝试将字符串值放入另一个对象

这是 Xml

<Test ID="2278388" TestCompleted="2013-06-25T14:13:07.137">
<TestResult>P</TestResult> 
<TestType>
 <Name>Nursing</Name> 
 <Part1>ULE</Part1> 
 <Part2>PRI</Part2> 
</TestType>
<ExamCode>P1</ExamCode>
</Test>

使用 webclient 我已经设法将它放入 Xelement 'Elm' 我已经弄清楚如何获取名称 part1 和 part2 但无法弄清楚如何获取 ID、测试结果、已完成或考试代码

private BssClient XMLtoBssClient()
        {
            BssClient BssC = new BssClient();


            BssC.caseType = ((wch.Elm).Descendants("TestType").Select(x => x.Element("Name").Value).FirstOrDefault()) ?? "";
            BssC.matter1 = ((wch.Elm).Descendants("TestType").Select(x => x.Element("Part1").Value).FirstOrDefault()) ?? "";
            BssC.matter2 = ((wch.Elm).Descendants("TestType").Select(x => x.Element("Part2").Value).FirstOrDefault()) ?? "";
            BssC.ExamCode = 
            BssC.ID =
            BssC.DateCompleted =

            return BssC;

    } 

我已经用谷歌搜索并查看了 MSDN 并尝试了各种方法,但这对我来说真的很新 非常感谢任何帮助

4

1 回答 1

1

以下代码应该可以工作:

private BssClient XMLtoBssClient()
    {
        BssClient BssC = new BssClient();


        BssC.caseType = ((wch.Elm).Descendants("TestType").Select(x => x.Element("Name").Value).FirstOrDefault()) ?? "";
        BssC.matter1 = ((wch.Elm).Descendants("TestType").Select(x => x.Element("Part1").Value).FirstOrDefault()) ?? "";
        BssC.matter2 = ((wch.Elm).Descendants("TestType").Select(x => x.Element("Part2").Value).FirstOrDefault()) ?? "";
        BssC.ExamCode = ((wch.Elm).Elements("ExamCode").Select(x => x.Value).FirstOrDefault()) ?? "";
        BssC.TestResult = ((wch.Elm).Elements("TestResult").Select(x => x.Value).FirstOrDefault()) ?? "";
        BssC.ID = ((wch.Elm).Attributes("ID").Select(x => x.Value).FirstOrDefault()) ?? "";
        BssC.DateCompleted = ((wch.Elm).Attributes("TestCompleted").Select(x => x.Value).FirstOrDefault()) ?? "";


        return BssC;

} 

但是,我建议您研究一下Xml 序列化,因为它会使这变得更容易维护和更简单。

于 2013-06-27T12:04:58.607 回答