2015-08-24 117 views
0

我已经通过VBScript创建了以下XML节点+ childnodes,并将其添加到现有的XML文档中。转换XML节点

<list name="Info"> 
    <item name="ViewName">Page</item> 
    <item name="DBField">Text</item> 
    <item name="Type">String</item> 
</list> 

但在XML文档中的节点插入1个一行:

<list name="Info"><item name="ViewName">Page</item><item name="DBField">Text</item><item name="Type">String</item></list> 

我已经做了有关XSLT的一些研究,但我无法弄清楚如何改变我节点正确或创建一个适当的模板。

+0

它有什么不同? –

+0

读取创建的xml文件的应用程序需要在每个列表/项目之后换行 – Knoffel

+0

然后真正的问题出现在目标应用程序中。也许最好花一些时间来解决这个问题。无论如何,如果您想要获得有关XSLT代码的帮助,请向我们展示代码以及XML输入和预期输出的一个小例子。 –

回答

0

你在找什么叫做“漂亮打印”。对于VBScript的可能解决方案描述为Robert McMurray的here。简而言之:

inFile = "C:\path\to\input.xml" 
outFile = "C:\path\to\output.xml" 

Set fso = CreateObject("Scripting.FileSystemObject") 
Set xml = CreateObject("Msxml2.DOMDocument") 
Set xsl = CreateObject("Msxml2.DOMDocument") 

' Put whitespace between tags. (Required for XSL transformation.) 
txt = fso.OpenTextFile(inFile).ReadAll 
txt = Replace(txt, "><", ">" & vbCrLf & "<") 

' Create an XSL stylesheet for transformation. 
stylesheet = _ 
    "<xsl:stylesheet version=""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"">" & _ 
    "<xsl:output method=""xml"" indent=""yes""/>" & _ 
    "<xsl:template match=""/"">" & _ 
    "<xsl:copy-of select="".""/>" & _ 
    "</xsl:template>" & _ 
    "</xsl:stylesheet>" 

' Transform the XML. 
xsl.loadXML stylesheet 
xml.loadXML txt 
xml.transformNode xsl 
xml.save outFile 
+0

这就是要找的东西。谢谢 – Knoffel