TreeViewをxmlファイルとしてエクスポート

TreeViewをxmlファイルとしてエクスポート

public static void ExportToXml(TreeView tv, string filename) {
	var doc = new XmlDocument();
	doc.CreateXmlDeclaration("1.0", "utf-8", null);

	foreach (TreeNode node in tv.Nodes) {
		var element = doc.CreateElement(node.Text);
		doc.AppendChild(element);

		ParseNode(doc, element, node);
	}

	doc.Save(filename);
}

private static void ParseNode(XmlDocument doc, XmlElement parentElement, TreeNode parentNode) {
	foreach (TreeNode node in parentNode.Nodes) {
		if (node.GetNodeCount(true) == 0) {
			parentElement.AppendChild(doc.CreateTextNode(node.Text));
		} else {
			var element = doc.CreateElement(XmlConvert.EncodeName(node.Text));
			parentElement.AppendChild(element);
			ParseNode(doc, element, node);
		}
	}
}

インポートとかは現状必要無いので割愛+最低限のテストしかしてないので文字列によってはちゃんと動かないことがあるかも。
いちおうXmlConvert.EncodeNameとかはしたけど