以编程方式向 AS3 中的 XML 对象添加注释行
Programmatically add a comment line to an XML object in AS3
我正在使用 XML 以编程方式创建不同的 XML 文件;效果很好。为了给那些 XML 文件的潜在读者额外的提示,我想添加带有“”的描述性注释行,以便这些行在例如notepad++ 或 sublime pro.
我可以附加一个评论节点,就像这是一个描述
但随后该评论未突出显示为评论。
我尝试了几个想法,比如转义尖括号,包括将注释放入一个新的 XML 元素中的 CDAT 结构,...
但没有任何效果如我所愿。
简而言之:
如何在 AS3 中创建这样的结构:
`<node1>content node1</node1>
<!-- add your sub nodes here -->
<node2>content node2</node2>`
UPDATE/Solution:
感谢@akmozo,我终于解决了我的问题。
我的错误是:
- IDE 编辑器中的错误
我相信我的 IDE 告诉我这个陈述是错误的,"an expression was expected"。所以我什至没有开始我的程序;什么是错误的。
只有在我想获得更详细的错误消息后,我才能 post 作为答案并启动程序,令人惊讶的是它没有任何警告或错误!
- 不正确XML.ignoreComment使用
我错过了
XML.ignoreComments = false;
陈述;或更准确地说:我错误地将 ignoreComment 属性 添加到我的 xml 对象,而不是将其用作 XML class 的 属性 ;-(
我的工作测试线是这样的:
var myNode:XML = <book />;
var pgNbr:String = "10";
var pgCount:String = "50";
var commentLine = "<!-- This is page #:" + pgNbr + ", out of " + pgCount + " pages -->";
XML.ignoreComments = false;
myNode.appendChild(new XML(commentLine));
结果很完美!
<book>
<!-- This is page #:10, out of 50 pages -->
</book>
简而言之,您不能在使用 XML 和 XMLList 对象时使用。好消息是,您可以在使用字符串时使用。因此,将您的 XML 转换为字符串,添加您的评论,然后再转换回 XML。听起来太多了?在向 XML.
添加注释时,这就是大多数编程语言必须做的事情
您可以像添加任何其他 XML child 一样添加 XML 评论,在您的情况下,您可以像这样使用 insertChildAfter()
例如:
// to see your added comment
XML.ignoreComments = false;
var xml:XML = <data>
<node1>content node1</node1>
<node2>content node2</node2>
</data>;
xml.insertChildAfter(xml.node1, <!-- add your sub nodes here -->);
trace(xml.toXMLString());
给予
<data>
<node1>content node1</node1>
<!-- add your sub nodes here -->
<node2>content node2</node2>
</data>
希望能帮到你。
我正在使用 XML 以编程方式创建不同的 XML 文件;效果很好。为了给那些 XML 文件的潜在读者额外的提示,我想添加带有“”的描述性注释行,以便这些行在例如notepad++ 或 sublime pro.
我可以附加一个评论节点,就像这是一个描述 但随后该评论未突出显示为评论。
我尝试了几个想法,比如转义尖括号,包括将注释放入一个新的 XML 元素中的 CDAT 结构,...
但没有任何效果如我所愿。
简而言之: 如何在 AS3 中创建这样的结构:
`<node1>content node1</node1>
<!-- add your sub nodes here -->
<node2>content node2</node2>`
UPDATE/Solution: 感谢@akmozo,我终于解决了我的问题。 我的错误是:
- IDE 编辑器中的错误
我相信我的 IDE 告诉我这个陈述是错误的,"an expression was expected"。所以我什至没有开始我的程序;什么是错误的。 只有在我想获得更详细的错误消息后,我才能 post 作为答案并启动程序,令人惊讶的是它没有任何警告或错误!
- 不正确XML.ignoreComment使用
我错过了 XML.ignoreComments = false; 陈述;或更准确地说:我错误地将 ignoreComment 属性 添加到我的 xml 对象,而不是将其用作 XML class 的 属性 ;-(
我的工作测试线是这样的:
var myNode:XML = <book />;
var pgNbr:String = "10";
var pgCount:String = "50";
var commentLine = "<!-- This is page #:" + pgNbr + ", out of " + pgCount + " pages -->";
XML.ignoreComments = false;
myNode.appendChild(new XML(commentLine));
结果很完美!
<book>
<!-- This is page #:10, out of 50 pages -->
</book>
简而言之,您不能在使用 XML 和 XMLList 对象时使用。好消息是,您可以在使用字符串时使用。因此,将您的 XML 转换为字符串,添加您的评论,然后再转换回 XML。听起来太多了?在向 XML.
添加注释时,这就是大多数编程语言必须做的事情您可以像添加任何其他 XML child 一样添加 XML 评论,在您的情况下,您可以像这样使用 insertChildAfter()
例如:
// to see your added comment
XML.ignoreComments = false;
var xml:XML = <data>
<node1>content node1</node1>
<node2>content node2</node2>
</data>;
xml.insertChildAfter(xml.node1, <!-- add your sub nodes here -->);
trace(xml.toXMLString());
给予
<data>
<node1>content node1</node1>
<!-- add your sub nodes here -->
<node2>content node2</node2>
</data>
希望能帮到你。