小编Yuf*_*Yuf的帖子

在C#中,如何使用缩进将XmlNode转换为字符串?(没有循环)

这必须是一个如此简单的问题,但我无法得到答案.

我有一个XmlNode,我想要做的就是输出这个节点,作为一个字符串,缩进(制表符或空格)完整,以提供更好的可读性.

到目前为止,我尝试了XmlWriter,XmlTextWriter,XmlDocument,XmlReader.

  • 我在XmlDocument中尝试了PreserveWhitespace但是我无法让XmlDocument输出我的节点.
  • 我在XmlTextWriter中尝试了Formatting = Formatting.Indented属性,但我无法弄清楚如何将内容输出到字符串.

将XmlNode输出为字符串WITHOUT缩进很容易.我只是做XmlNode.OuterXml.我如何在那里得到缩进?

我想这样做而不通过XmlNode循环并使用强力来添加空格,因为我认为应该有一个更简单的方法.

谢谢.

编辑:对于未来的读者,这里是答案:

  var xmlNode = is some object of type XmlNode

  using (var sw = new StringWriter())
  {
      using (var xw = new XmlTextWriter(sw))
      {
        xw.Formatting = Formatting.Indented;
        xw.Indentation = 2; //default is 1. I used 2 to make the indents larger.

        xmlNode.WriteTo(xw);
      }
      return sw.ToString(); //The node, as a string, with indents!
  }
Run Code Online (Sandbox Code Playgroud)

我需要这样做的原因是输出节点的xml语法高亮.我使用AvalonEdit突出显示xml,将突出显示的文本输出到html,然后将html转换为可以在RichTextBox中显示的FlowDocument.

c# xml string xmlnode indentation

20
推荐指数
2
解决办法
2万
查看次数

有没有办法在变量中保存方法,然后再调用它?如果我的方法返回不同类型怎么办?

编辑:谢谢你的回答.我目前正在研究它!!

我有3个方法,S()返回字符串,D()返回double,B()返回bool.

我还有一个变量来决定我使用哪种方法.我想这样做:

    // I tried Func<object> method; but it says D() and B() don't return object.
    // Is there a way to use Delegate method; ? That gives me an eror saying method group is not type System.Delegate
    var method;

    var choice = "D";

    if(choice=="D")
    {
        method = D;
    }
    else if(choice=="B")
    {
        method = B;
    }
    else if(choice=="S")
    {
        method = S;
    }
    else return;

    DoSomething(method); // call another method using the method as a delegate.

    // or …
Run Code Online (Sandbox Code Playgroud)

c# methods delegates

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

如何引用不在代码隐藏中但在另一个对象中的事件处理程序?

我可以将DataContext设置为任何对象,然后将该对象的属性绑定到我的控件.

我想用事件处理程序做同样的事情.我有一类事件处理程序,我希望xaml使用.但是,xaml在后面的代码中查找事件处理程序.

    <Button Click="OnSearch"/>
Run Code Online (Sandbox Code Playgroud)

我收到警告,告诉我OnSearch在类后面的代码中不存在.

  1. 我希望OnSearch成为另一个对象.我怎样才能做到这一点?
  2. 如果我希望xaml在数据上下文对象中查找事件处理程序,该怎么办?

我是WPF的新手,我正在努力学习.我尝试在事件处理程序上绑定,但显然不起作用!

c# wpf event-handling

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

标签 统计

c# ×3

delegates ×1

event-handling ×1

indentation ×1

methods ×1

string ×1

wpf ×1

xml ×1

xmlnode ×1