使用下一个代码以经典的asp创建简单的xml文档:
dim xmlDoc: set xmlDoc = server.createobject("Microsoft.XMLDOM")
dim objRoot,objRecord,objAttribute,objIntro,objChild
dim newFileName: newFileName = "testing"
strFolder = server.mappath("/")
set objRoot = xmlDoc.createElement("Document")
set objAttribute = xmlDoc.createAttribute("xmlns")
objAttribute.nodeValue = "urn:iso:std:iso:20022:tech:xsd:pain.008.001.02"
objRoot.setAttributeNode(objAttribute)
xmlDoc.appendChild objRoot
set objRecord = xmlDoc.createElement("Level1-1")
objRoot.appendChild objRecord
set objRecord = xmlDoc.createElement("Level1-2")
objRoot.appendChild objRecord
set objRecord = xmlDoc.createElement("Level1-3")
set objChild = xmlDoc.createElement("Level1-3-1")
objChild.text = "Level1-3-1"
objRecord.appendChild objChild
objRoot.appendChild objRecord
Set objIntro = xmlDoc.createProcessingInstruction("xml","version='1.0' encoding='UTF-8'")
xmlDoc.insertBefore objIntro,xmlDoc.childNodes(0)
xmlDoc.save (strFolder & "\userdata\file\" & newFileName & ".xml")
response.write "<a href=""/userdata/file/" & newFileName & ".xml"" target=""_blank"">Open XML</a>"
set xmlDoc = nothing
这给出了下一个结果:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02">
<Level1-1 xmlns=""/>
<Level1-2 xmlns=""/>
<Level1-3 xmlns="">
<Level1-3-1>Level1-3-1</Level1-3-1>
</Level1-3>
</Document>
如您所见,在根元素上创建的属性在第二级的每个标签中都重复出现。尽管它不是在代码中创建的。在第三层(1-3-1级)没有属性。
有人知道为什么会这样吗?以及如何避免这种情况?
感谢沃尔特
答案 0 :(得分:1)
您可以使用setAttribute Method将属性及其值添加到该特定元素。
objRoot.setAttribute "xmlns","urn:iso:std:iso:20022:tech:xsd:pain.008.001.02"