Perl LibXML:注释掉一块元素
是否有添加/初始化注释的方法,例如$dom->CreateComent。。。这样它就注释出了整个xml标记块。基本上我想关闭评论之间的内容。 例如,它看起来是这样的:Perl LibXML:注释掉一块元素,perl,libxml2,Perl,Libxml2,是否有添加/初始化注释的方法,例如$dom->CreateComent。。。这样它就注释出了整个xml标记块。基本上我想关闭评论之间的内容。 例如,它看起来是这样的: <TT> <AA>keep</AA> <!-- comment to blocking <BB>hideme1</BB> <CC>hideme2</CC>
<TT>
<AA>keep</AA>
<!-- comment to blocking
<BB>hideme1</BB>
<CC>hideme2</CC>
-->
<DD>d's content is good</DD>
</TT>
实际上,这个问题是我试图找出一种方法来标记/标记/识别xml文件的更改,以支持新的客户端软件功能的一个先兆,但是能够在客户端需要返回到以前的软件版本的罕见情况下删除/撤销这些xml更改。不,我不能简单地指向原始xml文件,因为允许客户端对现有节点文本值进行微小修改。这一切都将通过perl脚本和LibXML的核心模块来控制,我不能使用客户端没有的模块
因此,基本上我已经确定了三种可能的xml更改类型,它们是新客户端软件功能的结果:
1.添加新元素节点通常用于支持新的软件功能
2.删除元素节点或元素块是很少见的,但这种可能性永远不会降低
3.很少更改节点文本值,但新sw可能需要新值
对于这三种类型,客户机都需要能够撤销更改。我想使用的一件事是属性,因为现有的xml文件不使用它们。例如,对于添加更改类型,我可以包括一个类似“ADD=swversion4.1”的atribute。这样,如果需要删除它,我只需要让perl脚本找到这些属性字符串,然后使用LibXML方法删除它们。CHANGE-CHANGE-type也是一样——我可以使用CHG=newvalue\u oldvalue这样的属性,然后再次使用纯perl或LibXML根据属性的内容切换回值。但是,删除更改类型给了我一个问题,就像其他类型一样,哈哈!。我希望能够将已删除的行单独保留在xml文件中,以便在软件在某个后期版本中回退时,perl脚本最终能够清理/删除它们
我知道这是很多,我对LibXML不熟悉,但对perl不熟悉。我只是想知道你们中是否有人对如何去做有任何想法,或者看到过类似于这种要求的东西。。。如果您能给我任何建议,我将不胜感激!谢谢…1查找节点的XML序列化。2创建值为该序列化的注释。3在文档中插入注释。4删除转换为注释的节点。@ikegami-很酷,我想我理解。。。并作为注释插入到我要注释掉的第一个节点的父节点。。。还是给它上面的兄弟姐妹?哪种方式,或者我必须考虑这两种类型?我将使用$$-> RePATENODE $ $NEW或$CHARE-PARTRONTRON->插入式$FIG,$$。