现有一个xml,想把其结点的expr
<?xml version="1.0" encoding="gb2312"?>
<root name="A" expr="A1|A2">
<child name="A1" expr="B C">
<child name="B" expr="D E">
<child name="D" expr="F|G|H">
<child name="F" expr=""/>
<child name="G" expr=""/>
<child name="H" expr="H1 H2">
<child name="H1" expr=""/>
<child name="H2" expr=""/>
</child>
<child name="E" expr=""/>
</child>
<child name="C" expr=""/>
</child>
<child name="A2" expr=""/>
</root>就是令
A=A1|A2
A1=B C
B=D E
D=F|G|H
H=H1 H2我想把xml中的expr属性用其子节点或其表达式全部展示出来,即
D=F|G|(H1 H2)
B=(F E)|(G E)|(H1 H2 E)
A1=B C
  =(F E C)|(G E C)|(H1 H2 E C)这个应该怎么实现,我做这个就是为了检查该xml中是否有冗余的信息,比方说A2可能就是A1最后的扩展集的一部分,这样我就输出提示信息。大家有什么其他的办法吗 

解决方案 »

  1.   


    要是有个
    1)
    <child name="E" expr="X|Y|Z"/>
    B=什么?2)
    <child name="E" expr="A|B"/>
    这是B是?? 要报错吗?你的要求也很有问题呀
      

  2.   


    如果是1),把E的表达式带入,然后再次扩展
    B=(F E)|...
      =(F X|Y|Z)|...
       =(F X)|(F Y)|(F Z)|...
    如果是2),不报错,我只是想把结点的expr扩展开,我认为冗余应该是存在在expr中有或关系的兄弟结点中,通过比较这些结点的最终扩展表达式来判断是不是存在相同的。不知道这样行不行,您有什么比较好的想法没?