【发布时间】:2016-12-22 17:42:07
【问题描述】:
我有一个 xml 文件,例如:
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Session TimeStamp="2016-12-21T17:01:01.8642453+02:00">
<Message>
<Content>test1</Content>
<ID>1</ID>
<Timestamp>12/21/2016 17:01:01</Timestamp>
<EventType>Debug</EventType>
<Priority>High</Priority>
</Message>
<Message>
<Content>test2</Content>
<ID>2</ID>
<Timestamp>12/21/2016 17:01:01</Timestamp>
<EventType>Exception</EventType>
<Priority>Low</Priority>
</Message>
<Message>
<Content>test3</Content>
<ID>3</ID>
<Timestamp>12/21/2016 17:01:01</Timestamp>
<EventType>Info</EventType>
<Priority>Medium</Priority>
</Message>
<Message>
<Content>test4</Content>
<ID>4</ID>
<Timestamp>12/21/2016 17:01:01</Timestamp>
<EventType>Warn</EventType>
<Priority>None</Priority>
</Message>
</Session>
</Root>
我想检查我尝试使用此方法的每条消息中元素 Content 的值:
Assert.IsTrue(xDocument.Root.Elements("Session").Last().Elements("Message").First().Element("Content").Value.Contains("test1"));
异常:System.InvalidOperationException:序列不包含任何元素
方法失败,找不到元素值,我该如何使用xdocument?
【问题讨论】:
-
我建议你把这个长语句拆分成更短的语句,然后在调试器中逐个执行。这样你就可以看到哪个语句失败了。并且希望查看变量会给你一些关于它失败原因的提示。
-
您的代码在我尝试复制它时有效。您如何将文本解析为 xDocument?你在使用 XDocument.Parse 吗?