2012-07-28 83 views
-1

在使用Xquery将xml映射到另一个(使用不同模式)时,我遇到了这样的问题,即输入xml“有时”不包含某个标记,有时它确实存在。我希望我的xquery检查输入是否存在,输出xml的相应标记应该只在那时被创建。检查每个标签的输入值是否会很困难?我想要一个简化的方法来实现这个目标。xquery:如何检查输入xml中的缺失标签?

任何人都可以请建议一些东西吗?

感谢和问候, 曼西

+2

您的转换听起来像它会更容易做到用XSLT。你使用XQuery而不是XSLT的原因是什么?此外,输入XML和期望输出的一个小例子将有助于说明问题并给我们提供一些基础答案。 – 2012-07-28 18:43:18

+0

这个问题太笼统了。请编辑问题并提供一个完整的(但很小的)示例:源XML文档,确切需要的结果以及必须实施的任何规则。 – 2012-07-28 21:16:48

回答

1

HM嗯......这里有一个也许“简单”的方法来检查标签foo是否存在在你的“input.xml中”

fn:exists($input-xml//*[local-name() = "foo"]) 

.. 。而如果你想测试标签FOO具有文本价值吧,把另一个断言:

fn:exists($input-xml//*[local-name() = "foo"][text() = "bar"]