我有一个包含xml脚本的工作表,大约15列乘70000行。我想将此数据保存到.xml
文件。我正在使用的当前代码是:
Sub saveXML()
Dim GenerateSheet As Worksheet
Set GenerateSheet = ThisWorkbook.Sheets("TestCase-")
GenerateSheet.SaveAs Filename:="C:\Users\" & "TestCase-" + Format(Now(), "YYYYMMDD") & ".xml", FileFormat:=xlTextWindows
End Sub
这会将其保存为.xml文件,但似乎在文件中的随机行周围添加了引号,这会破坏xml文件。
"<con:testCase xmlns:con=""http://eviware.com/soapui/config"" failOnError=""true"" failTestCaseOnErrors=""false"" keepSession=""false"" maxResults=""0"" name=""name"" searchProperties=""true"">"
<con:settings/>
"<con:testStep type=""request"" name=""TestStep_0001"">"
<con:settings/>
"<con:config xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:type=""con:RequestStep"">"
<con:interface>QuoteService</con:interface>
<con:operation>NewRate</con:operation>
"<con:request name=""NewRate - Request 1"" outgoingWss="""" incomingWss="""" timeout="""" sslKeystore="""" useWsAddressing=""true"" useWsReliableMessaging=""false"" wssPasswordType="""">"
<con:settings>
在工作表中,任何行周围都没有引号。
如何控制或阻止此行为?
答案 0 :(得分:0)
引用的代码无效。 (他们错过了结束标签并且不是自动关闭)。在每个引用标记的末尾添加/,以使它们自动关闭。
例子(注意结尾附近的“/”)
<con:request name="NewRate - Request 1" outgoingWss="" incomingWss="" timeout="" sslKeystore="" useWsAddressing="true" useWsReliableMessaging="false" wssPasswordType=""/>
答案 1 :(得分:0)
我在其他类型的文件中看到了类似的结果,其中包含转义引号(“)的行被引号本身包围。
我想说在保存的文件上运行某种形式的后期处理,或者根据文件创建一个XML地图:
ActiveWorkbook.XmlMaps.Add("[path to your file]", "[rootname]").Name = "[name of map]"
然后您应该能够将该文件保存为XML文件,但我还没有对此进行测试。