Excel 将VBA导出为XML,字符串包含<&引用;

Excel 将VBA导出为XML,字符串包含<&引用;,excel,xml,vba,Excel,Xml,Vba,我需要VBA创建的XML文件包含“我认为问题在于sActor包含标记,因此createTextNode(sActor)将对进行编码,我认为您可以通过将其包装在回勾中来显示这些标记:家庭成员。您所说的“导出”是什么意思"? 您正在使用SaveAsXMLData吗?再详细一点会有帮助;)在这里的其他人的帮助下,我创建了一个宏,从每一行创建XML文件-一切正常,我只需要一种显示方式“给wazz——我刚刚试过,但它仍然会导出它。sameIt没有任何好处,无法将我们指向其他帖子的代码,因为我们看不到您是如

我需要VBA创建的XML文件包含“我认为问题在于
sActor
包含标记,因此
createTextNode(sActor)
将对
进行编码,我认为您可以通过将其包装在回勾中来显示这些标记:
家庭成员
。您所说的“导出”是什么意思"? 您正在使用SaveAsXMLData吗?再详细一点会有帮助;)在这里的其他人的帮助下,我创建了一个宏,从每一行创建XML文件-一切正常,我只需要一种显示方式“给wazz——我刚刚试过,但它仍然会导出它。sameIt没有任何好处,无法将我们指向其他帖子的代码,因为我们看不到您是如何使用它的。此外,您的XML格式不好-
不应包含空格,而应为
。不正确的空格可能导致元素被解释为文本而不是XML。@game您需要将wb.Sheets(“Sheet1”)
更改为您的工作表,看起来应该是
Sheet3
@game标签名及其列号都在数组中
“title:683”
@game没问题,我已更新我的答案,将文件放在工作簿文件夹中,并跳过那些没有有效文件名的行。@game Change
fso.createTextFile(sFolder&sFile&“.nfo”,1,1)
改为
fso.createTextFile(sFolder&sFile&“.nfo”,1,0)
。1表示Unicode编码。XML文件中的空白不重要。让我们来看看。
sTemplateXML = _
        " <movie>" + vbNewLine + _
        "   <plot/>" + vbNewLine + _
        "   <_outline/>" + vbNewLine + _
        "   <_lockdata/>" + vbNewLine + _
        "   <dateadded/>" + vbNewLine + _
        "   <title/>" + vbNewLine + _
        "   <rating/>" + vbNewLine + _
        "   <year/>" + vbNewLine + _
        "   <sorttile/>" + vbNewLine + _
        "   <mpaa/>" + vbNewLine + _
        "   <premiered/>" + vbNewLine + _
        "   <releasedate/>" + vbNewLine + _
        "   <runtime/>" + vbNewLine + _
        "   <studio/>" + vbNewLine + _
        "   <tag/>" + vbNewLine + _
        "   <actor/>" + vbNewLine + _
        " </movie>" + vbNewLine


 Set doc = CreateObject("MSXML2.DOMDocument")
 doc.async = False
 doc.validateOnParse = False
 doc.resolveExternals = False

With Sheets("Sheet3")
  lLastRow = .UsedRange.Rows.Count

 For lRow = 3 To lLastRow
   sFolder = .Cells(lRow, 677).Value
   sFile = .Cells(lRow, 678).Value
   sPlot = .Cells(lRow, 679).Value
   s_outline = .Cells(lRow, 680).Value
   s_lockdata = .Cells(lRow, 681).Value
   sDateadded = .Cells(lRow, 682).Value
   sTitle = .Cells(lRow, 683).Value
   sRating = .Cells(lRow, 684).Value
   sYear = .Cells(lRow, 685).Value
   sSorttile = .Cells(lRow, 686).Value
   sMpaa = .Cells(lRow, 687).Value
   sPremiered = .Cells(lRow, 688).Value
   sReleasedate = .Cells(lRow, 689).Value
   sRuntime = .Cells(lRow, 690).Value
   sStudio = .Cells(lRow, 691).Value
   sTag = .Cells(lRow, 692).Value
   sActor = .Cells(lRow, 693).Value

   doc.LoadXML sTemplateXML
   doc.getElementsByTagName("plot")(0).appendChild doc.createTextNode(sPlot)
   doc.getElementsByTagName("_outline")(0).appendChild doc.createTextNode(s_outline)
   doc.getElementsByTagName("_lockdata")(0).appendChild doc.createTextNode(s_lockdata)
   doc.getElementsByTagName("dateadded")(0).appendChild doc.createTextNode(sDateadded)
   doc.getElementsByTagName("title")(0).appendChild doc.createTextNode(sTitle)
   doc.getElementsByTagName("rating")(0).appendChild doc.createTextNode(sRating)
   doc.getElementsByTagName("year")(0).appendChild doc.createTextNode(sYear)
   doc.getElementsByTagName("sorttile")(0).appendChild doc.createTextNode(sSorttile)
   doc.getElementsByTagName("mpaa")(0).appendChild doc.createTextNode(sMpaa)
   doc.getElementsByTagName("premiered")(0).appendChild doc.createTextNode(sPremiered)
   doc.getElementsByTagName("releasedate")(0).appendChild doc.createTextNode(sReleasedate)
   doc.getElementsByTagName("runtime")(0).appendChild doc.createTextNode(sRuntime)
   doc.getElementsByTagName("studio")(0).appendChild doc.createTextNode(sStudio)
   doc.getElementsByTagName("tag")(0).appendChild doc.createTextNode(sTag)
   doc.getElementsByTagName("actor")(0).appendChild doc.createTextNode(sActor)
   doc.Save sFolder & sFile & ".nfo"
  Next
 
 End With