2012-01-12 4 views
1

У меня есть пакет данных SP, который я преобразовал в XSLT, чтобы добавить заголовок, отображающий процент (Complete).
Прежде чем преобразовать dvwp в xslt, я добавил два заголовка count - один в поле Complete, а другой - в LastName. Они отлично работали, показывая мне # записей и # записей со значением в полном поле. Однако, когда я преобразовал dv в xslt, я понял, что потерял свои заголовки :(

Итак, я добавляю их обратно с помощью xslt. В настоящее время код XPath для уравнения, которое у меня есть, - <xsl:value-of select="count($Rows) div count($Rows)" />.
Как мне получить общие # значений Да, которые находятся в моем поле полногоXSLT уравнение с использованием полей списка SP

Update1:
Найден этот http://www.endusersharepoint.com/STP/viewtopic.php?f=14&t=534 и попробовал, однако приводит к следующему error- Ошибке установки процессора таблицы стили: 0x80004005: Аргумент 1 должны возвращать набор узлов. -> count (/ dsQueryResponse/Rows/Row = 'Y') < -

UPDATE2:
Полное имя поля w/i my XSLT dataset. Тип возврата - Y или пробел. Для усмешек я попробовал <xsl:value-of select="count(/xpath/to/parent/element[@Complete eq 'Y']) div count($Rows)" />, однако я получил следующую ошибку: Ошибка в таблице стилей процессора: 0x80004005: Ожидаемый токен ']' найден 'NAME'.count ((/ xpath/to/parent/element [@Complete -> eq < - -'Y ']) Количество ДИВА ($ Ряды) начинают думать, что может быть проблемой ж/'эк' .... Реферирование моих операторов XML ...

Update3:

<xsl:value-of select="count(/xpath/to/parent/element[@Complete = 'Y']) div count($Rows)" /> 

Хорошо, так что он все еще говорит 0, но я думаю, что причина, по которой он не показывает правильный ответ, - это b/c, он ожидает показать целое число и, очевидно, значение возвращаются из уравнения будут десятичным ... Было возились с уравнением в XPath ... вот что я tried-

count(/xpath/to/parent/element[@Complete = 'Y']) div count($Rows)*100 
(count(/xpath/to/parent/element[@Complete = 'Y']) div count($Rows))*100 
100(count(/xpath/to/parent/element[@Complete = 'Y']) div count($Rows)) 

UPDATE4:
Так что я знаю, что мое предыдущие подумал, что правильное число, не показывающее b/c, было плавающим, неверно, так как все числа в XPath и XSLT 1.0 являются поплавками. Reference

UPDATE5:
При дальнейшем исследовании, я обнаружил, что проблема заключается в count(/xpath/to/parent/element[@Complete = 'Y']) части моего уравнения, так как это возвращает 0 вместо значения. [Я знаю, что есть по крайней мере 3 «Y» Vals в моем Complete седловине]

UPDATE6:

<records*> 
<record*> 
    <last_name></last_name> 
    <first_name></first_name> 
    <mi></mi> 
    <office_symbol></office_symbol> 
    <geo_location></geo_location> 
    <complete></complete> 
    <date_complete></date_complete> 
    <date_expires></date_expires> 
    <email></email> 
    <supervisor></supervior> 
</record*> 
</records*> 

* я не знаю, что эти узлы называются мои данные поступают из базы данных, а не файл XML, я только что сделал запись/записи

UPDATE7
Возвращаясь к моему первоначальному вопросу. Я все еще пытаюсь найти уравнение XPath для отображения числа родителей (запись в XML i, вышедшем выше), где полный узел = Y.

UPDATE8
Ok. Поэтому я редактировал и тестировал, используя http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=tryxsl_value-of. Рабочий XSLT для подсчета # of Complete = Y - <xsl:value-of select="count(catalog/cd [complete = 'Y'])" />, так что я поставил ТОЧНО, что работает на W3schools в мой SP Dataview, и я ничего не получаю ... просто пустое пространство. Почему код не работает в моем SPDV?

ответ

0

Если «Complete» поле является элементом:

<xsl:value-of select="count(/xpath/to/complete/field/element[string(.) eq 'Yes])"/> 

Если ваше полное поле является атрибутом элемента:

<xsl:value-of select="count(/xpath/to/parent/element[@complete eq 'Yes'])"/> 

Не зная структуру вашего XML я не могу укажите требуемый XPATH - предикат «[]» - это то, что выбирает только значения «Да»

+1

Мне кажется, что вы используете XPath 2.0 в этом ответе. Однако XSLT-процессор, используемый Sharepoint, является (AFAIK) XSLT 1.0 и не поддерживает XPath 2.0. –

+0

@ Murray- Я определил, что Complete является узлом элемента ... – jg100309

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