是否有用于可控XML格式化的样式表或Windows命令行工具,特别是将
发布时间:2020-12-16 07:41:33 所属栏目:百科 来源:网络整理
导读:我正在搜索一个XSLT或命令行工具(或C#代码,可以制成一个命令行工具等),Windows将进行XML漂亮打印.具体来说,我想要一个有能力将属性放在一行的能力,如: Node ChildNode value1='5' value2='6' value3='happy' //Node 它不一定是这样的,但是我想将它用于具有
我正在搜索一个XSLT或命令行工具(或C#代码,可以制成一个命令行工具等),Windows将进行XML漂亮打印.具体来说,我想要一个有能力将属性放在一行的能力,如:
<Node> <ChildNode value1='5' value2='6' value3='happy' /> </Node> 它不一定是这样的,但是我想将它用于具有数十个属性的节点的XML文件,并将它们扩展到多行,使得它们更容易阅读,编辑和文本差异. 注意:我认为我的首选解决方案是可以通过C#方法的XSLT表,尽管Windows命令行工具也很好.
这是一个小的C#示例,可以直接由您的代码使用,或内置到一个exe中,并在comand行中调用“my.xml from.xml to.xml”:
static void Main(string[] args) { XmlWriterSettings settings = new XmlWriterSettings { NewLineHandling = NewLineHandling.Entitize,NewLineOnAttributes = true,Indent = true,IndentChars = " ",NewLineChars = Environment.NewLine }; using (XmlReader reader = XmlReader.Create(args[0])) using (XmlWriter writer = XmlWriter.Create(args[1],settings)) { writer.WriteNode(reader,false); writer.Close(); } } 样品输入: <Node><ChildNode value1='5' value2='6' value3='happy' /></Node> 示例输出(请注意,您可以删除<?xml ... with settings.OmitXmlDeclaration): <?xml version="1.0" encoding="utf-8"?> <Node> <ChildNode value1="5" value2="6" value3="happy" /> </Node> 请注意,如果您想要一个字符串而不是写入一个文件,只需与StringBuilder交换: StringBuilder sb = new StringBuilder(); using (XmlReader reader = XmlReader.Create(new StringReader(oldXml))) using (XmlWriter writer = XmlWriter.Create(sb,settings)) { writer.WriteNode(reader,false); writer.Close(); } string newXml = sb.ToString(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |