使用服务器端 suiteScript 2.0 生成 XML
Generate XML using server side suiteScript 2.0
我正在尝试在 2.0 Suitelet 脚本上使用 suitescript 来生成 xml 然后我想 return 将 Xml 作为字符串。请注意,我必须即时构建这个 XML,所以我不能只从文件中读取它。在客户端脚本上,我可以使用本机 javascript 并围绕文档进行构建,但在服务器端,我假设我必须使用 N/XML 模块并利用文档、元素和节点来构建它。
我想 return 作为字符串的 XML 的一个示例可能生成如下:
作为旁注,我希望我不会直接将此作为字符串执行,而是通过不只是构建一个长字符串并将该字符串解析为 XML 来使用 xml 逻辑.
<shipment>
<book>
<title>aaa</title>
<author>bbb</author>
</book>
</shipment>
最后我要return字符串:
"<shipment><book><title>aaa</title><author>bbb></author></book></shipment>"
正如我所说,我假设因为它是一个服务器端套件脚本,所以我会使用 N/xml 及其文档、节点、解析器等成员..
我的代码如下:
require(["N/xml"]);
var x= require("N/xml");
var xmlDocument = x.Parser.fromString({
text: '<shipment/>'
});
var newBookNode = xmlDocument.createElement("book");
var newTitleNode = xmlDocument.createElement("title");
var newTitleNodeValue = xmlDocument.createTextNode("aaa");
var newAuthorNode = xmlDocument.createElement("author");
var newAuthorNodeValue = xmlDocument.createTextNode("bbbb");
newBookNode.appendChild(newTitleNode);
newBookNode.appendChild(newAuthorNode);
newTitleNode.appendChild(newTitleNodeValue);
newAuthorNode.appendChild(newAuthorNodeValue);
xmlDocument.appendChild(newBookNode)
var asString2 = x.Parser.toString({document:doc1})
但是执行 appendChild 的行给我一个错误“HierarchyRequestError:无法在 'Node' 上执行 'appendChild':文档上只允许一个元素。:null”
的确如此。您可以按如下方式使用 N/xml:
require(['N/xml'...], function(xml,...){
var doc = xml.Parser.fromString({
text:'<cXML payloadID="'+ payLoadId +'"></cXML>'
});
doc.documentElement.appendChild({newChild:doc.createElement({tagName:'Lab'})});
var asString = xml.Parser.toString({document:doc});
});
我正在尝试在 2.0 Suitelet 脚本上使用 suitescript 来生成 xml 然后我想 return 将 Xml 作为字符串。请注意,我必须即时构建这个 XML,所以我不能只从文件中读取它。在客户端脚本上,我可以使用本机 javascript 并围绕文档进行构建,但在服务器端,我假设我必须使用 N/XML 模块并利用文档、元素和节点来构建它。
我想 return 作为字符串的 XML 的一个示例可能生成如下:
作为旁注,我希望我不会直接将此作为字符串执行,而是通过不只是构建一个长字符串并将该字符串解析为 XML 来使用 xml 逻辑.
<shipment>
<book>
<title>aaa</title>
<author>bbb</author>
</book>
</shipment>
最后我要return字符串:
"<shipment><book><title>aaa</title><author>bbb></author></book></shipment>"
正如我所说,我假设因为它是一个服务器端套件脚本,所以我会使用 N/xml 及其文档、节点、解析器等成员..
我的代码如下:
require(["N/xml"]);
var x= require("N/xml");
var xmlDocument = x.Parser.fromString({
text: '<shipment/>'
});
var newBookNode = xmlDocument.createElement("book");
var newTitleNode = xmlDocument.createElement("title");
var newTitleNodeValue = xmlDocument.createTextNode("aaa");
var newAuthorNode = xmlDocument.createElement("author");
var newAuthorNodeValue = xmlDocument.createTextNode("bbbb");
newBookNode.appendChild(newTitleNode);
newBookNode.appendChild(newAuthorNode);
newTitleNode.appendChild(newTitleNodeValue);
newAuthorNode.appendChild(newAuthorNodeValue);
xmlDocument.appendChild(newBookNode)
var asString2 = x.Parser.toString({document:doc1})
但是执行 appendChild 的行给我一个错误“HierarchyRequestError:无法在 'Node' 上执行 'appendChild':文档上只允许一个元素。:null”
的确如此。您可以按如下方式使用 N/xml:
require(['N/xml'...], function(xml,...){
var doc = xml.Parser.fromString({
text:'<cXML payloadID="'+ payLoadId +'"></cXML>'
});
doc.documentElement.appendChild({newChild:doc.createElement({tagName:'Lab'})});
var asString = xml.Parser.toString({document:doc});
});