在 ColdFusion 中创建 XML 个文本节点
Create XML text nodes in ColdFusion
在ColdFusion的XMLDOM抽象中,有一个创建元素的函数,可以通过属性设置元素的文本内容。但我看不到如何创建这样的代码段:
<a>some<b>text</b>here</a>
我希望创建包含字符串的文本节点,但我不知道如何创建文本节点。似乎没有工厂功能。这可能使用纯 ColdFusion,还是我需要使用 Java?
XML 文档对象实际上使用了文本节点,但没有在转储中显示它。试试这个:
a = xmlParse("<a>some<b>text</b>here</a>");
writeDump(a.xmlRoot.xmlNodes);
xmlNodes 数组有据可查:The XML document object
据我所知,无法在 ColdFusion 中创建新文本节点。但是你总是可以在文档中找到一个现有的文本节点,复制它,替换它的xmlValue和将其插入任何 xmlNodes 数组。
您始终可以使用 <cfsavecontent>
标签来完全控制 XML 结构。它允许你做这样的事情:
<cfset somevariable = "some dynamic value">
<cfsavecontent variable="myXML">
<cfoutput>
<?xml version='1.0' encoding='UTF-8'?>
<a>some<b>text</b>here</a>
<c>#somevariable#</c>
</cfoutput>
</cfsavecontent>
<cfdump var="#myXML#">
然后你的 XML 结构存储在 myXML
变量中。
Documentation for the cfsavecontent tag.
在 cfscript
中看起来像这样:
<cfscript>
somevariable = "some dynamic value";
savecontent variable="myXML" { WriteOutput("<?xml version='1.0' encoding='UTF-8'?><a>some<b>text</b>here</a><c>#somevariable#</c>"); }
writeDump(myXML);
</cfscript>
这是我能为您找到的最接近的,要求 XML 而不是数组。
<cfxml variable="xmlapiData">
<a b="text">some here</a>
</cfxml>
<cfdump var="#xmlapiData#">
将产生:
那当然是基于标签的。
在ColdFusion的XMLDOM抽象中,有一个创建元素的函数,可以通过属性设置元素的文本内容。但我看不到如何创建这样的代码段:
<a>some<b>text</b>here</a>
我希望创建包含字符串的文本节点,但我不知道如何创建文本节点。似乎没有工厂功能。这可能使用纯 ColdFusion,还是我需要使用 Java?
XML 文档对象实际上使用了文本节点,但没有在转储中显示它。试试这个:
a = xmlParse("<a>some<b>text</b>here</a>");
writeDump(a.xmlRoot.xmlNodes);
xmlNodes 数组有据可查:The XML document object
据我所知,无法在 ColdFusion 中创建新文本节点。但是你总是可以在文档中找到一个现有的文本节点,复制它,替换它的xmlValue和将其插入任何 xmlNodes 数组。
您始终可以使用 <cfsavecontent>
标签来完全控制 XML 结构。它允许你做这样的事情:
<cfset somevariable = "some dynamic value">
<cfsavecontent variable="myXML">
<cfoutput>
<?xml version='1.0' encoding='UTF-8'?>
<a>some<b>text</b>here</a>
<c>#somevariable#</c>
</cfoutput>
</cfsavecontent>
<cfdump var="#myXML#">
然后你的 XML 结构存储在 myXML
变量中。
Documentation for the cfsavecontent tag.
在 cfscript
中看起来像这样:
<cfscript>
somevariable = "some dynamic value";
savecontent variable="myXML" { WriteOutput("<?xml version='1.0' encoding='UTF-8'?><a>some<b>text</b>here</a><c>#somevariable#</c>"); }
writeDump(myXML);
</cfscript>
这是我能为您找到的最接近的,要求 XML 而不是数组。
<cfxml variable="xmlapiData">
<a b="text">some here</a>
</cfxml>
<cfdump var="#xmlapiData#">
将产生:
那当然是基于标签的。