LibXML:注释掉一个元素块

时间:2013-10-21 02:54:48

标签: perl libxml2

有没有办法添加/发起评论(例如$ dom-> createComment ...),以便它注释掉整个xml标签块。基本上我想关闭评论之间的内容。 例如,它看起来像这样:

      <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的核心模块来控制(我不能使用客户端没有的模块)。

基本上,由于新的客户端sw功能,我已经确定了三种可能的xml更改类型: 1.)添加新元素节点(通常支持新的sw功能) 2.)DELETE元素节点或块(将是罕见的,但绝不可能) 3.)CHANGE节点文本值(很少见,但新sw可能需要一个新值)

对于所有三种类型,客户端都需要能够撤消更改。我想要使​​用的一件事是ATTRIBUTES,因为现有的xml文件不使用它们。例如,对于ADD更改类型,我可以包含类似'ADD =“sw version 4.1”'的属性。这种方式如果需要删除,我可以简单地让perl脚本找到那些属性字符串并删除它们(使用LibXML方法)。与CHANGE更改类型相同 - 我可以使用像CHG =“newvalue_oldvalue”这样的属性,然后再次使用直接perl(或LibXML)根据属性的内容切换回值。 DELETE更改类型虽然给了我一个问题(和其他人一样哈哈!)。我希望能够在xml文件中“保留”已删除的行,以便在sw退回某个版本时(在某个晚点,perl脚本最终可以清理/删除它们)。

我知道这很多,我是LibXML的新手(但不是perl)。我只是想知道你是否有任何想法如何去做或看到类似这种要求的任何事情......我会感激任何建议!谢谢......

0 个答案:

没有答案