我有以下XML文件。 `
<objects>
<infos>
<rep-id-name id="12345"/>
<rep-name>IT</rep-name>
<create-user>354832</create-user>
<update-user>354832</update-user>
<create-date>2013-04-22T12:37:56.798Z</create-date>
<update-date>2013-04-22T14:41:16.299Z</update-date>
<parameter-definition/>
<column-definition/>
</infos>
<infos>
<rep-id-name id="255962905"/>
<rep-name>IT</rep-name>
<create-user>35483</create-user>
<update-user>35483</update-user>
<create-date>2013-04-22T12:37:56.798Z</create-date>
<update-date>2013-04-22T12:43:44.238Z</update-date>
<parameter-definition>
<contains-loc-string>True</contains-loc-string>
</parameter-definition>
<column-definition/>
</infos>
</objects>
如何检查两个子节点(参数定义和列定义)是否为空并删除完整的父节点。所以预期的结果是:
<objects>
<infos>
<rep-id-name id="255962905"/>
<rep-name>IT</rep-name>
<create-user>35483</create-user>
<update-user>35483</update-user>
<create-date>2013-04-22T12:37:56.798Z</create-date>
<update-date>2013-04-22T12:43:44.238Z</update-date>
<parameter-definition>
<contains-loc-string>True</contains-loc-string>
</parameter-definition>
<column-definition/>
</infos>
</objects>
答案 0 :(得分:0)
在样式表中包含以下模板规则:
<xsl:template match="infos[not(parameter-definition/node()
or column-definition/node())]"/>
我在这里解释为“空”,意思是“没有子节点” - 其他定义也是可能的,例如你可能想要允许注释或空白文本。如果元素不存在,这也会将元素视为空。