我是使用XML的新手,在尝试从spring.net配置文件中获取特定标记时遇到了一个奇怪的问题.在尝试使用测试xml文件缩小问题范围后,我发现应用以下代码:
List<XElement> nodes = xmlFile.Descendants("B").ToList();
Run Code Online (Sandbox Code Playgroud)
提供包含以下文件的非空列表:
<?xml version="1.0" encoding="utf-8" ?>
<A fakeAttribute="aaa">
<B id="DbProvider"/>
</A>
Run Code Online (Sandbox Code Playgroud)
但是提供了一个带有以下文件的空字符串:
<?xml version="1.0" encoding="utf-8" ?>
<A xmlns="aaa">
<B id="DbProvider"/>
</A>
Run Code Online (Sandbox Code Playgroud)
作为属性的文件之间的唯一区别.
我无法想象对此的解释.谢谢你的帮助.
我有以下代码,旨在防止用户在备忘录文本编辑器中编写换行符:
private void m_commentMemoEdit_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData.HasFlag(Keys.Enter))
{
e.SuppressKeyPress = true;
}
}
Run Code Online (Sandbox Code Playgroud)
它确实阻止了 Enter 的插入,但奇怪的是它也阻止了其他键的插入。到目前为止,我们发现“O”、“M”、“/”和“-”键也被“捕获”。
更新:以下代码满足我的需要:
private void m_commentMemoEdit_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == (int)Keys.Return)
{
e.SuppressKeyPress = true;
}
}
Run Code Online (Sandbox Code Playgroud)
但我仍然不明白以前的代码不起作用,而这个却起作用。
我查看了该System.Windows.Forms.Keys枚举,但没有找到任何线索(尽管我必须说这是一个构造奇怪的枚举)。谁能解释为什么会发生这种情况?