如何在WPF中的TextBlock中显示解析的xml?

时间:2013-11-19 15:02:13

标签: c# xml wpf xaml

我的TextBlock名称为 XML_View ,我也知道.xml文件位置string filename = dlg.FileName;

所以我想展示TextBlock的xml n,我在这里找到了一个可能的解决方案(Display XML in a WPF textbox),它给出了一个函数,如下所示:

protected string FormatXml(string xmlString)
{
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(xmlString);
    StringBuilder sb = new StringBuilder();
    System.IO.TextWriter tr = new System.IO.StringWriter(sb);
    XmlTextWriter wr = new XmlTextWriter(tr);
    wr.Formatting = Formatting.Indented;
    doc.Save(wr);
    wr.Close();
    return sb.ToString();
}

如果我得到了必需的字符串,我可能只是简单地写XML_View.Text = String_xml;或类似的东西。但是如果我有.xml文件并且我不知道如何使用这样的功能,我就不知道如何获取字符串。

2 个答案:

答案 0 :(得分:3)

我已经修改了你的函数,把文件作为参数来读取你的xml。确保文件存在于bin目录中(或者使用类似@“C:\ temp \ myfile.xml”的绝对路径来解析)。

protected string FormatXml(string xmlFile)
{
    XmlDocument doc = new XmlDocument();
    FileStream fs = new FileStream(xmlFile, FileMode.Open, FileAccess.Read);
    doc.Load(fs);
    StringBuilder sb = new StringBuilder();
    System.IO.TextWriter tr = new System.IO.StringWriter(sb);
    XmlTextWriter wr = new XmlTextWriter(tr);
    wr.Formatting = Formatting.Indented;
    doc.Save(wr);
    wr.Close();
    return sb.ToString();
}

答案 1 :(得分:2)

您可以替换

doc.LoadXml(xmlString);

doc.Load(xmlFilePath);

我使用this作为参考。