XmlPeek 空字符串导致失败
XmlPeek empty string causes failure
所以在我的目标文件中,有一行看起来像这样:
<XmlPeek Namespaces="" XmlInputPath="file.xml" Query="/data/@AttributeOne">
<Output TaskParameter="Result" ItemName="my_AttributeOne" />
</XmlPeek>
在"file.xml",我有:
<data AttributeOne="abc" AttributeTwo="def" />
它还会读取一些其他属性。
当属性有数据时,一切正常...但是当我将 AttributeOne 保留为空字符串 ("") 时,XmlPeek 会出现以下错误:
The "XmlPeek" task's outputs could not be retrieved from the "Result" parameter. Parameter "includeEscaped" cannot have zero length.
如果我完全删除该属性,它可以正常工作(生成的项目显然是空白的,这是可以理解的)
问题是...我如何在不破坏块的情况下确定空白属性的值...是通过对值进行预测试,还是通过正确处理空白,或其他一些方式。
约束:唯一真正的要求是坚持内置任务 (XmlPeek)...我知道社区任务中的 XmlRead...出于各种原因,我想使用 out-of -开箱即用的任务。
提前致谢!
错误发生是因为空字符串被用作项目标识符。我猜标识符不能是空字符串。如果您删除该属性,则结果为 null,并且不会创建任何项目,因此不会引发错误。
也许可以尝试 return 结果作为 属性 而不是项目。
如果您不需要区分被省略的属性和具有空值的属性,您可以通过在查询中插入条件 [@AttributeOne!='']
来防止错误,如下所示。
<XmlPeek Namespaces="" XmlInputPath="file.xml" Query="/data[@AttributeOne!='']/@AttributeOne">
<Output TaskParameter="Result" ItemName="my_AttributeOne" />
</XmlPeek>
所以在我的目标文件中,有一行看起来像这样:
<XmlPeek Namespaces="" XmlInputPath="file.xml" Query="/data/@AttributeOne">
<Output TaskParameter="Result" ItemName="my_AttributeOne" />
</XmlPeek>
在"file.xml",我有:
<data AttributeOne="abc" AttributeTwo="def" />
它还会读取一些其他属性。
当属性有数据时,一切正常...但是当我将 AttributeOne 保留为空字符串 ("") 时,XmlPeek 会出现以下错误:
The "XmlPeek" task's outputs could not be retrieved from the "Result" parameter. Parameter "includeEscaped" cannot have zero length.
如果我完全删除该属性,它可以正常工作(生成的项目显然是空白的,这是可以理解的)
问题是...我如何在不破坏块的情况下确定空白属性的值...是通过对值进行预测试,还是通过正确处理空白,或其他一些方式。
约束:唯一真正的要求是坚持内置任务 (XmlPeek)...我知道社区任务中的 XmlRead...出于各种原因,我想使用 out-of -开箱即用的任务。
提前致谢!
错误发生是因为空字符串被用作项目标识符。我猜标识符不能是空字符串。如果您删除该属性,则结果为 null,并且不会创建任何项目,因此不会引发错误。
也许可以尝试 return 结果作为 属性 而不是项目。
如果您不需要区分被省略的属性和具有空值的属性,您可以通过在查询中插入条件 [@AttributeOne!='']
来防止错误,如下所示。
<XmlPeek Namespaces="" XmlInputPath="file.xml" Query="/data[@AttributeOne!='']/@AttributeOne">
<Output TaskParameter="Result" ItemName="my_AttributeOne" />
</XmlPeek>