Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Условие работает через раз / 7 сообщений из 7, страница 1 из 1
01.06.2015, 16:32
    #38973503
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие работает через раз
Данные:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
<GOODS>
  <row Number="1" Priority="1" IsChecked="1" Semester="1" Name_RU="История России" Credit="4.0000" Hours="144" Sign_RU="ЭКЗ" IsAuto="1" NeedExam="0" Result="0.0000" ResultSign="хор." /> 
  <row Number="1" Priority="2" IsChecked="1" Semester="1" Name_RU="Психология" Credit="2.0000" Hours="72" Sign_RU="ЗАЧ" IsAuto="1" NeedExam="0" Result="0.0000" ResultSign="зач." /> 
  <row Number="1" Priority="1" IsChecked="1" Semester="3" Name_RU="Иностранный язык в сфере юриспруденции" Credit="2.0000" Hours="180" Sign_RU="ЭКЗ" IsAuto="1" NeedExam="0" Result="0.0000" ResultSign="хор." /> 
  <row Number="2" Priority="1" IsChecked="1" Semester="3" Name_RU="Философия" Credit="2.0000" Hours="72" Sign_RU="ЗАЧ" IsAuto="1" NeedExam="0" Result="0.0000" ResultSign="хор." /> 
  <row Number="4" Priority="2" IsChecked="1" Semester="3" Name_RU="Безопасность жизнедеятельности" Credit="2.0000" Hours="72" Sign_RU="ЗАЧ" IsAuto="1" NeedExam="0" Result="0.0000" ResultSign="зач." /> 
  <row Number="10" Priority="26" IsChecked="1" Semester="6" Name_RU="Уголовное право" Credit="3.5000" Hours="396" Sign_RU="ЭКЗ" IsAuto="1" NeedExam="0" Result="0.0000" ResultSign="удов." /> 
  <row Number="1" Priority="1" IsChecked="1" Semester="1" GoodsID="192" Name_RU="Конфликтология" Credit="2.0000" Hours="72" IsAuto="0" /> 
  <row Number="2" Priority="2" IsChecked="1" Semester="1" GoodsID="187" Name_RU="Культура речи и деловое общение" Credit="2.0000" Hours="108" IsAuto="0" /> 
  <row Number="2" Priority="3" IsChecked="1" Semester="1" GoodsID="194" Name_RU="Логика" Credit="2.0000" Hours="36" IsAuto="0" /> 
  <row Number="2" Priority="4" IsChecked="1" Semester="1" GoodsID="378" Name_RU="Основы бухгалтерского учета" Credit="2.0000" Hours="72" IsAuto="0" /> 
  <row Number="1" Priority="17" IsChecked="1" Semester="1" GoodsID="446" Name_RU="Теория государства и права" Credit="4.0000" Hours="396" IsAuto="0" /> 
  <row Number="2" Priority="19" IsChecked="1" Semester="1" GoodsID="382" Name_RU="История отечественного государства и права" Credit="4.0000" Hours="252" IsAuto="0" /> 
  <row Number="5" Priority="2" IsChecked="1" Semester="2" GoodsID="14" Name_RU="Профессиональная этика" Credit="2.0000" Hours="72" IsAuto="0" /> 
  <row Number="1" Priority="16" IsChecked="1" Semester="2" GoodsID="375" Name_RU="Информационные технологии в юридической деятельности" Credit="4.0000" Hours="144" IsAuto="0" /> 
  <row Number="5" Priority="17" IsChecked="1" Semester="2" GoodsID="577" Name_RU="Ценные бумаги" Credit="2.0000" Hours="108" IsAuto="0" /> 
  <row Number="1" Priority="17" IsChecked="1" Semester="2" GoodsID="446" Name_RU="Теория государства и права" Credit="6.0000" Hours="396" IsAuto="0" /> 
  <row Number="3" Priority="19" IsChecked="1" Semester="2" GoodsID="383" Name_RU="История государства и права зарубежных стран" Credit="4.0000" Hours="288" IsAuto="0" /> 
  <row Number="1" Priority="38" IsChecked="1" Semester="2" GoodsID="201" Name_RU="Концепции современного естествознания" Credit="3.0000" Hours="72" IsAuto="0" /> 
  <row Number="4" Priority="19" IsChecked="1" Semester="3" GoodsID="448" Name_RU="Конституционное право" Credit="3.0000" Hours="324" IsAuto="0" /> 
  <row Number="7" Priority="23" IsChecked="1" Semester="3" GoodsID="449" Name_RU="Гражданское право" Credit="3.5000" Hours="720" IsAuto="0" /> 
  <row Number="8" Priority="24" IsChecked="1" Semester="3" GoodsID="460" Name_RU="Международное право" Credit="5.0000" Hours="144" IsAuto="0" /> 
  <row Number="2" Priority="39" IsChecked="1" Semester="3" GoodsID="376" Name_RU="Математика для юристов" Credit="2.0000" Hours="72" IsAuto="0" /> 
  <row Number="1" Priority="2" IsChecked="1" Semester="4" GoodsID="468" Name_RU="Муниципальное право России" Credit="4.0000" Hours="180" IsAuto="0" /> 
  <row Number="2" Priority="11" IsChecked="1" Semester="4" GoodsID="477" Name_RU="Юридическая служба предприятия" Credit="4.0000" Hours="144" IsAuto="0" /> 
  <row Number="4" Priority="19" IsChecked="1" Semester="4" GoodsID="448" Name_RU="Конституционное право" Credit="1.0000" Hours="324" IsAuto="0" /> 
  <row Number="5" Priority="20" IsChecked="1" Semester="4" GoodsID="447" Name_RU="Административное право" Credit="4.0000" Hours="252" IsAuto="0" /> 
  <row Number="6" Priority="22" IsChecked="1" Semester="4" GoodsID="221" Name_RU="Трудовое право" Credit="4.0000" Hours="252" IsAuto="0" /> 
  <row Number="7" Priority="23" IsChecked="1" Semester="4" GoodsID="449" Name_RU="Гражданское право" Credit="4.5000" Hours="720" IsAuto="0" /> 
  <row Number="2" Priority="3" IsChecked="1" Semester="5" GoodsID="470" Name_RU="Семейное право" Credit="4.0000" Hours="144" IsAuto="0" /> 
  <row Number="3" Priority="3" IsChecked="1" Semester="5" GoodsID="467" Name_RU="Уголовно-исполнительное право" Credit="5.0000" Hours="108" IsAuto="0" /> 
  <row Number="4" Priority="4" IsChecked="1" Semester="5" GoodsID="466" Name_RU="Юридическая психология" Credit="5.0000" Hours="180" IsAuto="0" /> 
  <row Number="5" Priority="5" IsChecked="1" Semester="5" GoodsID="471" Name_RU="Правоохранительные органы" Credit="4.0000" Hours="108" IsAuto="0" /> 
  <row Number="5" Priority="20" IsChecked="1" Semester="5" GoodsID="447" Name_RU="Административное право" Credit="4.0000" Hours="252" IsAuto="0" /> 
  <row Number="6" Priority="22" IsChecked="1" Semester="5" GoodsID="221" Name_RU="Трудовое право" Credit="4.0000" Hours="252" IsAuto="0" /> 
  <row Number="7" Priority="23" IsChecked="1" Semester="5" GoodsID="449" Name_RU="Гражданское право" Credit="4.0000" Hours="720" IsAuto="0" /> 
  <row Number="11" Priority="27" IsChecked="1" Semester="5" GoodsID="450" Name_RU="Гражданский процесс" Credit="6.0000" Hours="216" IsAuto="0" /> 
  <row Number="12" Priority="28" IsChecked="1" Semester="5" GoodsID="454" Name_RU="Уголовный процесс" Credit="7.0000" Hours="216" IsAuto="0" /> 
  <row Number="13" Priority="29" IsChecked="1" Semester="5" GoodsID="264" Name_RU="Финансовое право" Credit="4.0000" Hours="180" IsAuto="0" /> 
  <row Number="18" Priority="33" IsChecked="1" Semester="5" GoodsID="459" Name_RU="Налоговое право" Credit="6.0000" Hours="144" IsAuto="0" /> 
  <row Number="20" Priority="35" IsChecked="1" Semester="5" GoodsID="464" Name_RU="Право социального обеспечения" Credit="4.0000" Hours="180" IsAuto="0" /> 
  <row Number="6" Priority="6" IsChecked="1" Semester="6" GoodsID="574" Name_RU="Жилищное право" Credit="3.0000" Hours="180" IsAuto="0" /> 
  <row Number="6" Priority="19" IsChecked="1" Semester="6" GoodsID="163" Name_RU="Право интеллектуальной собственности" Credit="3.0000" Hours="108" IsAuto="0" /> 
  <row Number="7" Priority="23" IsChecked="1" Semester="6" GoodsID="449" Name_RU="Гражданское право" Credit="5.0000" Hours="720" IsAuto="0" /> 
  <row Number="9" Priority="25" IsChecked="1" Semester="6" GoodsID="456" Name_RU="Земельное право" Credit="4.0000" Hours="144" IsAuto="0" /> 
  <row Number="14" Priority="30" IsChecked="1" Semester="6" GoodsID="189" Name_RU="Предпринимательское право" Hours="144" IsAuto="0" /> 
  <row Number="16" Priority="32" IsChecked="1" Semester="6" GoodsID="451" Name_RU="Арбитражный процесс" Credit="4.0000" Hours="144" IsAuto="0" /> 
  <row Number="19" Priority="34" IsChecked="1" Semester="6" GoodsID="461" Name_RU="Международное частное право" Credit="5.0000" Hours="108" IsAuto="0" /> 
  <row Number="15" Priority="31" IsChecked="1" Semester="7" GoodsID="455" Name_RU="Экологическое право" Credit="4.5000" Hours="180" IsAuto="0" /> 
  <row Number="17" Priority="32" IsChecked="1" Semester="7" GoodsID="463" Name_RU="Криминалистика" Credit="2.0000" Hours="108" IsAuto="0" /> 
  <row Number="3" Priority="13" IsChecked="0" Semester="8" GoodsID="479" Name_RU="Правовые проблемы ресурсопользования" Credit="3.0000" Hours="108" IsAuto="0" /> 
  <row Number="3" Priority="14" IsChecked="1" Semester="8" GoodsID="480" Name_RU="Конкурентное право и защита прав потребителей" Credit="3.0000" Hours="108" IsAuto="0" /> 
  <row Number="15" Priority="31" IsChecked="1" Semester="8" GoodsID="455" Name_RU="Экологическое право" Credit="1.5000" Hours="180" IsAuto="0" /> 
  <row Number="17" Priority="32" IsChecked="1" Semester="8" GoodsID="463" Name_RU="Криминалистика" Credit="4.0000" Hours="108" IsAuto="0" /> 
  <row Number="7" Priority="8" IsChecked="1" Semester="9" GoodsID="499" Name_RU="Криминология" Credit="4.0000" Hours="108" IsAuto="0" /> 
  <row Number="4" Priority="15" IsChecked="1" Semester="9" GoodsID="572" Name_RU="Юридические лица" Credit="3.0000" Hours="108" IsAuto="0" /> 
  <row Number="4" Priority="16" IsChecked="0" Semester="9" GoodsID="478" Name_RU="Гражданско-правовые договоры" Credit="3.0000" Hours="108" IsAuto="0" /> 
  <row Number="1" Priority="1" IsChecked="1" Semester="10" GoodsID="1986" Name_RU="Государственный экзамен по дисциплине "Теория государства и права"" Credit="4.0000" Hours="144" IsAuto="0" /> 
  <row Number="2" Priority="2" IsChecked="1" Semester="10" GoodsID="1987" Name_RU="Государственный междисциплинарный экзамен по дисциплинам "Уголовное право" и "Уголовный процесс"" Credit="4.0000" Hours="144" IsAuto="0" /> 
  <row Number="3" Priority="3" IsChecked="1" Semester="10" GoodsID="1910" Name_RU="Выпускная квалификационная работа (бакалаврская работа)" Credit="4.0000" Hours="144" IsAuto="0" /> 
  <row Number="1" Priority="9" IsChecked="1" Semester="10" GoodsID="476" Name_RU="Банковское право" Credit="3.0000" Hours="108" IsAuto="0" /> 
  <row Number="1" Priority="10" IsChecked="0" Semester="10" GoodsID="573" Name_RU="Актуальные проблемы исполнительного производства РФ, практика исполнения" Credit="3.0000" Hours="108" IsAuto="0" /> 
  <row Number="2" Priority="11" IsChecked="1" Semester="10" GoodsID="477" Name_RU="Юридическая служба предприятия" Credit="3.0000" Hours="144" IsAuto="0" /> 
  <row Number="2" Priority="12" IsChecked="0" Semester="10" GoodsID="575" Name_RU="Автоматизированные комплексы, информационно-правовые системы в деятельности ФССП России" Credit="3.0000" Hours="108" IsAuto="0" /> 
  <row Number="5" Priority="18" IsChecked="0" Semester="10" GoodsID="590" Name_RU="Доказательства в гражданском процессе" Credit="3.0000" Hours="108" IsAuto="0" /> 
  <row Number="6" Priority="19" IsChecked="0" Semester="10" GoodsID="576" Name_RU="Гражданское и торговое право зарубежный стран" Credit="3.0000" Hours="108" IsAuto="0" /> 
  <row Number="2" Priority="51" IsChecked="1" Semester="10" GoodsID="108" Name_RU="Преддипломная" Credit="6.0000" Hours="216" IsAuto="0" /> 
  </GOODS>



Шаблон:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
   <xsl:template match="GOODS">
    <table id="goods">
      <thead>
        <th>Сем</th>
        <th colspan="2">№</th>
        <th>Название дисциплины</th>
        <th>Зач. ед.</th>
        <th>Часы</th>
        <th>КП</th>
        <th>Зач.</th>
        <th>Экз.</th>
      </thead>
      <tbody>
        <tr><th colspan="9">Дисциплины учебного плана</th></tr>
        <xsl:for-each select="*[@IsAuto=0][not(preceding-sibling::*[@IsAuto=0]/@Semester = @Semester)]">
          <xsl:apply-templates select="/GOODS/*[@IsAuto=0][@Semester=current()/@Semester]" mode="NotAuto"/>
        </xsl:for-each>
      </tbody>
      <tfoot>
        <tr>
          <th colspan="4" align="right">ИТОГО</th>
          <td><xsl:value-of select="sum(*[@IsChecked=1]/@Credit)"/></td>
          <td colspan="4"/>
        </tr>
      </tfoot>
    </table>
  </xsl:template>
  <xsl:template match="GOODS/*" mode="NotAuto">
    <tr>
      <xsl:if test="position()=1">
        <xsl:variable name="rs">
          <xsl:choose>
            <xsl:when test="@Semester mod 2 = 0">2</xsl:when>
            <xsl:otherwise>1</xsl:otherwise>
          </xsl:choose>
        </xsl:variable>
        <td style="vertical-align:top" rowspan="{count(/GOODS/*[@IsAuto=0][@Semester=current()/@Semester])+$rs}">
          <xsl:value-of select="@Semester"/>
        </td>
      </xsl:if>
      
      <xsl:variable name="p" select="count(preceding-sibling::*)"/>
      <xsl:variable name="startPos"><xsl:apply-templates select="preceding-sibling::*[1]" mode="startPos"/></xsl:variable>
      <xsl:variable name="endPos"><xsl:apply-templates select="following-sibling::*[1]" mode="endPos"/></xsl:variable>
      <xsl:variable name="hasNoCheck" select="count(/GOODS/*[position() >= $startPos and position() &lt;= $endPos and @IsChecked=0])" />

      <xsl:call-template name="DV"/>
      
      <td>
        <xsl:if test="@IsChecked=0"><xsl:attribute name="style">color:gray</xsl:attribute></xsl:if>
        P<xsl:value-of select="$p"/>
        SP<xsl:value-of select="$startPos"/>
        EP<xsl:value-of select="$endPos"/>
        N<xsl:value-of select="@Number"/>
        NC<xsl:value-of select="$hasNoCheck"/>
        <br/><xsl:value-of select="@Name_RU"/>
      </td>
      <td><xsl:value-of select="format-number(@Credit,'##.#')"/></td>
      <td align="center"><xsl:value-of select="@Hours"/></td>
      <td align="center"></td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <xsl:if test="position()=last()">
      <tr>
        <th colspan="3" align="right">Итого <xsl:value-of select="@Semester"/> семестр</th>
        <td><xsl:value-of select="sum(/GOODS/*[@IsAuto=0][@IsChecked=1][@Semester=current()/@Semester]/@Credit)"/></td>
        <td colspan="4"/>
      </tr>
      <xsl:if test="@Semester mod 2 = 0">
        <tr>
          <th colspan="3" align="right">Итого за <xsl:value-of select="@Semester div 2"/> год обучения</th>
          <td><xsl:value-of select="sum(/GOODS/*[@IsAuto=0][@IsChecked=1][@Semester=current()/@Semester or Semester=current()/@Semester - 1]/@Credit)"/></td>
          <td colspan="4"/>
        </tr>
      </xsl:if>
    </xsl:if>
  </xsl:template>
  
  <xsl:template name="DV">
    <xsl:variable name="p" select="count(preceding-sibling::*)"/>
    <xsl:variable name="startPos"><xsl:apply-templates select="preceding-sibling::*[1]" mode="startPos"/></xsl:variable>
    <xsl:variable name="endPos"><xsl:apply-templates select="following-sibling::*[1]" mode="endPos"/></xsl:variable>
    <xsl:variable name="hasNoCheck" select="count(/GOODS/*[position() >= $startPos and position() &lt;= $endPos and @IsChecked=0])" />
    <xsl:if test="not(preceding-sibling::*[1]/@Number = current()/@Number and $hasNoCheck>0)">
      <td>
        <xsl:choose>
          <xsl:when test="following-sibling::*[1]/@Number = current()/@Number and $hasNoCheck>0">
            <xsl:attribute name="rowspan">2</xsl:attribute>
          </xsl:when>
          <xsl:otherwise>
            <xsl:attribute name="colspan">2</xsl:attribute>
          </xsl:otherwise>
        </xsl:choose>
        <xsl:value-of select="position()"/>
      </td>
      <xsl:if test="following-sibling::*[1]/@Number = current()/@Number and $hasNoCheck>0">
        <td rowspan="2">ДВ</td>
      </xsl:if>
    </xsl:if>
  </xsl:template>
  
  <xsl:template match="GOODS/*" mode="startPos">
    <xsl:choose>
      <xsl:when test="following-sibling::*[1]/@Number = current()/@Number">
        <xsl:apply-templates select="preceding-sibling::*[1]" mode="startPos"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="count(preceding-sibling::*) +1"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
  
  <xsl:template match="GOODS/*" mode="endPos">
    <xsl:choose>
      <xsl:when test="preceding-sibling::*[1]/@Number = current()/@Number">
        <xsl:apply-templates select="following-sibling::*[1]" mode="endPos"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="count(preceding-sibling::*) -1"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>



Задача: объединить две строки в одну по следующим признакам:

1) У двух идущих подряд записей должен быть одинаковый @Semester и @Number
2) У одной из этих записей должно быть @IsChecked=0

Объединение происходит в шаблоне DV.
Что я делаю: находясь в контексте row, определяю абсолютную позицию (относительная position() разбита блоками по @semester), с которой начинается текущий @Number ($startPos) и которой заканчивается ($endPos), а потом считаю количество записей в этом промежутке, имеющих @IsChecked=0 ($hasNoCheck):
Код: xml
1.
<xsl:variable name="hasNoCheck" select="count(/GOODS/*[position() >= $startPos and position() &lt;= $endPos and @IsChecked=0])" />

Тут-то и проблема.

В данных 4 таких блока, но объединяются только два. Начальная и конечная позиции определяются правильно, но hasNoCheck почему-то в двух случаях возвращает 0.
...
Рейтинг: 0 / 0
01.06.2015, 16:58
    #38973545
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие работает через раз
Antonariy,

Что-то я не понял идеи шаблонов startPos и endPos. Что они должны возвращать?
...
Рейтинг: 0 / 0
01.06.2015, 17:26
    #38973609
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие работает через раз
_Vasilisk_Antonariy,

Что-то я не понял идеи шаблонов startPos и endPos. Что они должны возвращать?Начальную и конечную позицию row с текущим @Number. На них можно не заморачиваться, они работают корректно, см рисунок.

Например 9й семестр, где объединение не сработало: номер 4 начинается с 54й позиции и заканчивается 55й. Среди них запись с @IsChecked=0 есть (55я), но их количество = 0.

Или вот 10й семестр 1я позиция (абсолютная - 56) - у нее номер 1, он вообще единственный (4я и 5я с тем же номером идут не следом за ней, поэтому не считаются), @IsChecked=1, однако count(... and @IsChecked=0) почему-то равно 1.

Я офигеваю.
...
Рейтинг: 0 / 0
01.06.2015, 17:34
    #38973618
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие работает через раз
О, доперло! Нумерация съехала на единичку, так правильно:

Код: xml
1.
<xsl:variable name="hasNoCheck" select="count(/GOODS/*[position()-1 >= $startPos and position()-1 &lt;= $endPos and @IsChecked=0])" />
...
Рейтинг: 0 / 0
01.06.2015, 17:36
    #38973622
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие работает через раз
Уже неделю себе моск выношу с этой портянкой.

Следующий геморой: пронумеровать блоки ДВ1, ДВ2 и т.д...
...
Рейтинг: 0 / 0
01.06.2015, 17:57
    #38973649
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие работает через раз
AntonariyО, доперло! Нумерация съехала на единичку, так правильно:Заработало?AntonariyСледующий геморой: пронумеровать блоки ДВ1, ДВ2 и т.д...У тебя в каждом подблоке своя нумерация. Почему бы для каждого уровня не определить свой шаблон и в этом шаблоне тупо вызывать position(), а данные фильтровать до вызова этого шаблона?
...
Рейтинг: 0 / 0
01.06.2015, 18:21
    #38973683
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие работает через раз
_Vasilisk_ Заработало?Да.

_Vasilisk_ У тебя в каждом подблоке своя нумерация. Почему бы для каждого уровня не определить свой шаблон и в этом шаблоне тупо вызывать position(), а данные фильтровать до вызова этого шаблона?Не понял. Нумерация ДВ должна быть сквозная.
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Условие работает через раз / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]