Это невероятно грязно, но я обнаружил, что если вы используете метод createElement в документе MSXML, вы получаете (по какой-то причине) элемент xml, который сортируется в формате <tag />
, и поэтому вы можете принудительно заставить serailize как это, заменив их элементами, которые вы создаете с тем же именем:
<!-- Contents of c:\xml.xml -->
<xml>
<element></element>
</xml>
В Javascript (но, надеюсь, его легко конвертировать в VbScript)
objXML = new ActiveXObject("MSXML2.DOMDocument.4.0");
objXML.load("c:\\xml.xml");
var xmlElement = objXML.childNodes[1];
var newElement = objXML.createElement(xmlElement.childNodes[0].tagName);
xmlElement.replaceChild(newElement, xmlElement.childNodes[0]);
И наоборот, вы можете принудительно развернуть нерасширенные элементы <tag />
, установив для свойства текста значение ""
:
newElement.text = "";
Надеюсь, это поможет - я знаю, что это действительно ужасно, но есть вероятность, что вам нужно сделать это, во-первых, достаточно ужасно, так что эта дополнительная ужасность не будет иметь большого значения! : -Р