我正在尝试使用Google Apps脚本在XML文件中创建以下结构:
<?xml version="1.0" encoding="UTF-8"?>
<xfdf xmlns="http://ns.adobe.com/xfdf/">
<fields>
<field name="TestingXML">
<value>Some Testing Value</value>
</field>
<field name="Address_es_:prefill">
<value>Client Address</value>
</field>
<field name="Address1_es_:prefill">
<value>Project Address</value>
</field>
</fields>
</xfdf>
尝试设置名称空间前缀时出现问题:
xmlns =“ http://ns.adobe.com/xfdf/”
到目前为止是我的代码:
var contractInfo = [
["Customer Name_es_:prefill","ownerFullName"],
["Address_es_:prefill", "clientAddress"],
["Address_Project_es_:prefill", "projectAddress"]
];
function CreateXML(contractInfo){
//Define Namespace
var nsh = XmlService.getNamespace('http://ns.adobe.com/xfdf/');
//Create the root element and set the namespace
var root = XmlService.createElement('xfdf', nsh);
//Create the next section
var fields = XmlService.createElement('fields');
root.addContent(fields); //attach this section to the root
//Loop and create the rest of sections based on an 2D array object.
for(var m = 0; m < contractInfo.length; m++){
var child1 = XmlService.createElement('field')
.setAttribute('name', contractInfo[m][0]);
var chiled2 = XmlService.createElement('value').setText(contractInfo[m][1]);
child1.addContent(chiled2);
fields.addContent(child1);
}
var document = XmlService.createDocument(root);
//var xml = XmlService.getPrettyFormat().format(document);
Logger.log(document);
}
但是运行此代码时,我在Logger.log中遇到以下错误
[Document: No DOCTYPE declaration, Root is [Element: <xfdf [Namespace: http://ns.adobe.com/xfdf/]/>]]
理想情况下,输出XML看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<xfdf xmlns="http://ns.adobe.com/xfdf/">
<fields>
<field name="TestingXML">
<value>Some Testing Value</value>
</field>
<field name="Address_es_:prefill">
<value>Client Address</value>
</field>
<field name="Address1_es_:prefill">
<value>Project Address</value>
</field>
</fields>
</xfdf>
我相信我一开始会缺少本节:
xml版本=“ 1.0”编码=“ UTF-8”
但是这是由它自己创建的。如何解决这个No DOCTYPE声明?
我相信您的目标如下。