2016-02-02 2 views
2

Так что в моем файле мишеней, у меня есть строка, которая выглядит следующим образом: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.

если удалить атрибут ENTIRELY, он работает нормально (результирующий элемент явно и понятно пуст)

Вопрос в том, как я могу ОПРЕДЕЛЯТЬ, БЕЗ дутья кусков, значение пустого атрибута ... путем предварительного тестирования на значение, или путем правильной обработки пробела или некоторых других средств.


CONSTRAINT: единственное реальное требование придерживаться встроенных задач (XmlPeek) ... Я в курсе XmlRead в общественных задач ... по разным причинам, я хочу использовать из задачи.

Заранее благодарен!

ответ

0

Ошибка возникает из-за того, что в качестве идентификатора товара используется пустая строка. Я думаю, что идентификаторы не могут быть пустой строкой. Если вы удалите атрибут, тогда результат будет null, и элемент не будет создан, поэтому это не вызывает ошибку.

Возможно, попробуйте вернуть результат как свойство вместо предмета.

Смежные вопросы