小编Tom*_*ata的帖子

不能将Descendants()或Elements()与xmlns一起使用

我是使用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)

作为属性的文件之间的唯一区别.

我无法想象对此的解释.谢谢你的帮助.

c# xml linq linq-to-xml

10
推荐指数
3
解决办法
1230
查看次数

System.Windows.Forms.Keys.HasFlag 行为异常

我有以下代码,旨在防止用户在备忘录文本编辑器中编写换行符:

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枚举,但没有找到任何线索(尽管我必须说这是一个构造奇怪的枚举)。谁能解释为什么会发生这种情况?

.net c#

2
推荐指数
1
解决办法
1410
查看次数

标签 统计

c# ×2

.net ×1

linq ×1

linq-to-xml ×1

xml ×1