以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  xml文件格式问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122347)

--  作者:rjh4078
--  发布时间:2018/7/23 16:54:00
--  xml文件格式问题
我用FT的代码生成的xml 在notepad里面无法按照层级结构显示 感觉堆在一起

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

这个是FT生成的


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

这是其他软件生成的

ft代码

With Tables("订单")
If .current IsNot Nothing Then
Dim jo As new  XObject
For Each c As Col In Tables("订单").cols
jo(c.name)=.current(c.name).Tostring()
Next
Dim fl As String=ProjectPath & "xml\\" & .current("单号") & "\\" & .current("单号") & ".xml"
If FileSys.FileExists(fl) Then
    FileSys.DeleteFile(fl)
End If
Dim str As String="<?xml version=""1.0"" encoding=""UTF-8"" standal"?> " & "<!--Web portal To AES: the XML Document Definition: Viewing Order Version 1 " & "by foxtable " & Date.now & "-->"
FileSys.WriteAllText(fl,str & jo.Toxml, True, Encoding.Default)
End If

End  With



--  作者:有点甜
--  发布时间:2018/7/23 17:23:00
--  

1、你可以安装一个notepad++然后打开查看;

 

2、你可以直接用浏览器打开查看。


--  作者:rjh4078
--  发布时间:2018/7/23 17:57:00
--  
我装了notepad 打开后ft生成的xml只有一行 非常长 其他软件生成的能够正确的分层次显示
--  作者:rjh4078
--  发布时间:2018/7/23 18:00:00
--  

以下内容是专门发给有点甜浏览



--  作者:有点甜
--  发布时间:2018/7/23 19:52:00
--  

你安装了NotePad++了吗?我打开没问题

  


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180723195126.jpg
图片点击可在新窗口打开查看

--  作者:rjh4078
--  发布时间:2018/7/23 20:37:00
--  
打开没问题的这个是其他软件生成的
另外一个p开头的xml是ft生成的

--  作者:rjh4078
--  发布时间:2018/7/23 20:39:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2018/7/23 20:49:00
--  
默认就是一行的,网上有很多在线格式化xml的网站,找一个格式化一下
--  作者:rjh4078
--  发布时间:2018/7/24 8:03:00
--  
关键每天要批量生成很多 导入到另外一个软件的xml处理工具里 那个工具识别出来FT的xml文件也是一行 非常别扭
--  作者:有点甜
--  发布时间:2018/7/24 9:11:00
--  

1、另存为 unicode或者utf8 格式的文件,然后用浏览器打开,可以正常显示xml文件;

 

2、其它软件无法识别的话,是其自身的问题。如果你确实需要格式化,参考下面代码

 

Dim jo As New XObject
jo("Name") = "张三"
jo("Group") = "VIP"
jo("Type") = 2
jo("Default") = False
Dim xml = jo.ToXML

Dim xd As System.XML.XmlDocument
xd = New System.XML.XmlDocument
xd.LoadXml(xml)
Dim sb As StringBuilder = New StringBuilder
Dim sw As io.StringWriter = New io.StringWriter(sb)
Dim xtw As System.XML.XmlTextWriter = Nothing
Try
    xtw = New System.XML.XmlTextWriter(sw)
    xtw.Formatting = System.XML.Formatting.Indented
    xtw.Indentation = 1
    xtw.IndentChar = vbTab
    xd.WriteTo(xtw)
Finally
    If xtw IsNot Nothing Then xtw.Close()
End Try

Return sb.ToString()