dom - 如何在 XML 文件中添加换行符?

标签 dom vbscript xml

我正在使用 VBScript 将子节点添加到现有节点。但问题是输出是这样的

<parentNode>
    <childNode/><addedChildNode/><anotherAddedChildNode/></parentNode>

我需要它们是这样的:

<parentNode>
    <childNode/>
    <addedChildNode/>
    <anotherAddedChildNode/>
</parentNode>

我尝试在包含 vbCrvbCrLfvbLfvbNewLine 的每行后面添加一个文本节点 像这样

Set newLineNode= xmlDoc.createTextNode(vbCrLf)
parentNode.appendChild(newLineNode)  

但无论如何,它给了我以下内容:

    <parentNode>
        <childNode/>
<addedChildNode/>
<anotherAddedChildNode/>
</parentNode>

你认为应该做什么?顺便说一句,子节点的数量可能会达到400个左右。并且该文件可能会被其他用户检查。所以格式很重要。

最佳答案

如果您只是想格式化缩进和新行,请尝试此 UD 功能。

Option Explicit

Function FormatXML(sXML)
    Dim sTmp ' Temp String
    Dim sOut ' Output string
    Dim lv ' level of indentation
    Dim oTmp ' Temporary object

    ' Remove newline characters, tabs
    sTmp = sXML
    sTmp = Replace(sTmp, vbCrLf, "")
    sTmp = Replace(sTmp, vbLf, "")
    sTmp = Replace(sTmp, vbCr, "")
    sTmp = Replace(sTmp, vbTab, "")

    ' Process contents split by the ending ">"
    sOut = ""
    lv = 0
    For Each oTmp In Split(sTmp, ">")
        oTmp = Trim(oTmp)
        If Len(oTmp) > 0 Then
            If Len(sOut) > 0 Then sOut = sOut & vbCrLf
            If Left(oTmp, 2) = "</" Then
                lv = lv - 1
                sOut = sOut & String(lv, vbTab) & oTmp & ">"
            Else
                If Left(oTmp, 1) = "<" And Right(oTmp, 1) <> "/" Then
                    sOut = sOut & String(lv, vbTab) & oTmp & ">"
                    lv = lv + 1
                Else
                    sOut = sOut & String(lv, vbTab) & oTmp & ">"
                End If
            End If
        End If
    Next
    FormatXML = sOut
End Function

示例输入:
" <parentNode> " & vbCrLf & vbTab & "<childNode/> <addedChildNode/><addedChildNode><GrandchildNode>ABC<addedGrandChildNode/></GrandChildNode></addedChildNode><anotherAddedChildNode/></parentNode>"

示例输出:
sample output

关于dom - 如何在 XML 文件中添加换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31730045/

相关文章:

javascript - Chrome 中的输入出现 "deleteFromDocument"后,输入的值不会更新

excel - 如何在所有现有 Excel 工作表之后添加工作表?

c# - 在 C# 程序中替代数据库的好选择

android - 如何在 onPreExecute 停止异步任务?

javascript - jQuery 是 mousedown on mouseover

javascript - 遍历 angular.element 的正确方法

arrays - 数组的 VBScript 索引位置

java - Eclipse Checkstyle - 无法解析配置流

javascript - 主干删除 View 和 DOM 节点

vbscript - 如何在 Windows NT 4 中运行 VBScript?