private void load() { try { GridBuilder builder = new GridBuilder(); GridCellGroup root = new GridCellGroup(); //XmlDocument xmldoc = _editor.XmlEditor.Text.ToXmlDocument(); XmlDocument xmldoc = new XmlDocument(); //do this to remove #whitespace nodes xmldoc.LoadXml(_editor.XmlEditor.Text.ToXmlDocument().OuterXml); builder.ParseNodes(root, null, xmldoc.ChildNodes); _xmlGridView.Cell = root; _lblErrors.Visibility = Visibility.Collapsed; } catch (Exception ex) { _xmlGridView.Cell = null; _lblErrors.Content = "Errors in XML document: " + ex.Message; _lblErrors.Visibility = Visibility.Visible; } }
internal void InitializeForm() { InitializeComponent(); LookFeelUtil.SetLookAndFeel(contentContextMenuStrip); SetLanguage(); Form1 form = (Form1)Owner; String filename = ProgramUtil.GetFilenameTabPage(form.pagesTabControl.SelectedTabPage); CustomRichTextBox pageTextBox = ProgramUtil.GetPageTextBox(form.pagesTabControl.SelectedTabPage); String xmlString = pageTextBox.Text; //XmlUrlResolver resolver = new XmlUrlResolver(); //resolver.Credentials = CredentialCache.DefaultCredentials; XmlDocument xmldoc = new XmlDocument(); XmlReaderSettings settings = new XmlReaderSettings { IgnoreWhitespace = true, //XmlResolver = resolver, IgnoreComments = true, DtdProcessing = DtdProcessing.Parse //ProhibitDtd = false }; StringReader reader = new StringReader(xmlString); XmlReader render = !String.IsNullOrEmpty(filename) ? XmlReader.Create(reader, settings, filename) : XmlReader.Create(reader, settings); try { xmldoc.Load(render); } catch (Exception exception) { String error = String.Format(LanguageUtil.GetCurrentLanguageString("Error", Name), exception.Message); WindowManager.ShowAlertBox(form, error); reader.Dispose(); render.Close(); return; } reader.Dispose(); render.Close(); GridBuilder builder = new GridBuilder(); GridCellGroup xmlgroup = new GridCellGroup { Flags = GroupFlags.Overlapped | GroupFlags.Expanded }; builder.ParseNodes(xmlgroup, null, xmldoc.ChildNodes); root = new GridCellGroup(); root.Table.SetBounds(1, 2); root.Table[0, 0] = new GridHeadLabel { Text = "XML" }; root.Table[0, 1] = xmlgroup; xmlGridView.Cell = root; xmlGridView.Font = pageTextBox.Font; xmlGridView.ForeColor = pageTextBox.ForeColor; xmlGridView.BackColor = pageTextBox.BackColor; }
private void openToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*"; if (dialog.ShowDialog() == DialogResult.OK) { XmlDataDocument xmldoc = new XmlDataDocument(); XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreWhitespace = true; settings.ProhibitDtd = false; XmlUrlResolver resolver = new XmlUrlResolver(); resolver.Credentials = CredentialCache.DefaultCredentials; settings.XmlResolver = resolver; XmlReader render = XmlReader.Create(dialog.FileName, settings); try { try { xmldoc.Load(render); } catch (Exception ex) { MessageBox.Show(this, ex.Message, "Parse Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } finally { render.Close(); } GridBuilder builder = new GridBuilder(); if (xmlGrid.ShowColumnHeader) { GridCellGroup xmlgroup = new GridCellGroup(); xmlgroup.Flags = GroupFlags.Overlapped | GroupFlags.Expanded; builder.ParseNodes(xmlgroup, null, xmldoc.ChildNodes); GridCellGroup root = new GridCellGroup(); root.Table.SetBounds(1, 2); root.Table[0, 0] = new GridHeadLabel(); root.Table[0, 0].Text = dialog.FileName; root.Table[0, 1] = xmlgroup; xmlGrid.Cell = root; } else { GridCellGroup root = new GridCellGroup(); builder.ParseNodes(root, null, xmldoc.ChildNodes); xmlGrid.Cell = root; } } }
public void SetText(string fragment) { fragment = fragment.Trim(); if (fragment.StartsWith("<")) //performance optimization, gridview will take long time if it is no xml document { if (XSConfiguration.Instance.Config.AlwaysPrettyprintFragments) { try { _edtFragment.Text = PrettyPrint.Execute(fragment, true, false, true); } catch { _edtFragment.Text = fragment; // MessageBox.Show(Application.Current.MainWindow, "Cannot prettyprint selected text:\n" + e.Message, // "Error", MessageBoxButton.OK, MessageBoxImage.Error); } } else { _edtFragment.Text = fragment; } try { GridBuilder builder = new GridBuilder(); GridCellGroup root = new GridCellGroup(); //XmlDocument xmldoc = fragment.ToXmlDocument(); XmlDocument xmldoc = new XmlDocument(); //do this to remove #whitespace nodes xmldoc.LoadXml(fragment.ToXmlDocument().OuterXml); builder.ParseNodes(root, null, xmldoc.ChildNodes); _gridFragment.Cell = root; _gridFragment.FullExpand(); } catch (Exception) { _gridFragment.Cell = null; } } else { _edtFragment.Text = fragment; _gridFragment.Cell = null; } updateFolding(); }
private void ExpandCell(GridCell cell, int level = 1) { GridCellGroup cellGroup = (GridCellGroup)cell; _xmlGridView.Expand(cellGroup); if (level > 1) { level--; for (int i = 0; i <= cellGroup.Table.Height - 1; i++) { GridCell tableCell = cellGroup.Table[0, i]; if (tableCell.IsGroup) { ExpandCell(tableCell, level); } } } }