2015-08-24 122 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