最近在做js操作xml文件的时候,当读取xml文件后在保存的时候,原来的格式都没了,请问有没有用来保持格式或者换行的函数? 
如:
<ROOT>  
  <DATA>  
    <TAGS>  
      <TAG>  
        <TAGID>0000000036</TAGID>  
        <TAGCODE1>78</TAGCODE1>  
        <TAGCODE2/>  
        <MSGTYPE/>  
        <TAGDESC>Instructions to the Paying/Accepting/Negotiating Bank</TAGDESC>  
        <MOSTATUS>O</MOSTATUS>  
        <EXTTAG/>  
        <ROW1>0</ROW1>  
        <ROW2>0</ROW2>  
        <COL1>0</COL1>  
        <COL2>0</COL2>  
        <FORMFLAG/>  
        <RELATEDTAG/>  
        <RELATEDFLAG/>  
        <TAGINFO>  
          <LINEINFO>  
            <LINENO>1</LINENO>  
            <START>1</START>  
            <LEN>780</LEN>  
            <TYPE>String</TYPE>  
            <VALUE/>  
            <FIELD/>  
            <ROW>12</ROW>  
            <COL>65</COL>  
          </LINEINFO>  
        </TAGINFO>  
        <RULE/>  
        <REGEXP/>  
        <NETWORKRULES/>  
        <FORMAT>wuleiwwx!@#$%^*()&amp;&lt;wulei&gt;</FORMAT>  
      </TAG>  
    </TAGS>  
  </DATA>  
</ROOT>  
 保存后如下:<?xml version="1.0" encoding="GB2312"?><ROOT><DATA><TAGS><TAG><TAGID>0000000036</TAGID><TAGCODE1>78</TAGCODE1><TAGCODE2></TAGCODE2><MSGTYPE></MSGTYPE><TAGDESC>Instructions to the Paying/Accepting/Negotiating Bank</TAGDESC><MOSTATUS>O</MOSTATUS><EXTTAG></EXTTAG><ROW1>0</ROW1><ROW2>0</ROW2><COL1>0</COL1><COL2>0</COL2><FORMFLAG></FORMFLAG><RELATEDTAG></RELATEDTAG><RELATEDFLAG></RELATEDFLAG><TAGINFO><LINEINFO><LINENO>1</LINENO><START>1</START><LEN>780</LEN><TYPE>String</TYPE><VALUE></VALUE><FIELD></FIELD><ROW>12</ROW><COL>65</COL></LINEINFO></TAGINFO><RULE></RULE><REGEXP></REGEXP><NETWORKRULES></NETWORKRULES><FORMAT>wuleiwwx!@#$^####^^*()&amp;&amp;lt;wulei&amp;gt;</FORMAT></TAG></TAGS></DATA></ROOT>    建立节点如下:var tagIdNode = xmlDoc.createElement("TAGID");
   var tagIdTextNode = xmlDoc.createTextNode(dealSpecialStr(TAGID));
    tagIdNode.appendChild(tagIdTextNode);其余类似  请问有什么解决办法?

解决方案 »

  1.   

    msxml paser的话用sax保存一下dom就可以了。
    比如:改成js即可。Sub formatDoc(ByRef oDoc, sFilename)
        On Error Resume Next
        Dim oSAXWriter, oSAXReader    Set oSAXWriter  = CreateObject("Msxml2.MXXMLWriter.6.0")
        Set oSAXReader  = CreateObject("Msxml2.SAXXMLReader.6.0")
        With oSAXWriter
            .encoding           = "UTF-8"
            .byteOrderMark      = True
            .standalone         = True
            .omitXMLDeclaration = False
            .indent             = True
        End With
        With oSAXReader
            Set .contentHandler = oSAXWriter
            Set .dtdHandler     = oSAXWriter
            Set .errorHandler   = oSAXWriter
            .putProperty "http://xml.org/sax/properties/lexical-handler", oSAXWriter
            .putProperty "http://xml.org/sax/properties/declaration-handler", oSAXWriter
            .parse oDoc
        End With
        With oDoc
            .loadXML oSAXWriter.output
            If .parseError.errorCode <> 0 Then
                sErrMsg     = .parseError.errorCode & "|" &_
                              .parseError.srcText & "|" & .parseError.reason
                On Error GoTo 0
                Err.Raise 30000, "formatDoc", sErrMsg
                Exit Sub
            End If
            .save sFilename
        End With
        Set oSAXWriter  = Nothing
        Set oSAXReader  = Nothing
    End Sub