Поиск в XML по маске
От: Return Россия  
Дата: 10.08.04 13:52
Оценка:
А можно ли искать в XML с помощью XPath по маске, а то я нашел только одну * и то она работает только когда одна.
Есть какие-нибудь втроенные методы поиска по маске?
Re: Поиск в XML по маске
От: Lloyd Россия  
Дата: 10.08.04 13:59
Оценка: :)
Здравствуйте, Return, Вы писали:

R>А можно ли искать в XML с помощью XPath по маске, а то я нашел только одну * и то она работает только когда одна.

R>Есть какие-нибудь втроенные методы поиска по маске?

Ты лучше скажи чего тебе надо.
Re[2]: Поиск в XML по маске
От: Return Россия  
Дата: 10.08.04 14:32
Оценка:
Здравствуйте, Lloyd, Вы писали:

R>>А можно ли искать в XML с помощью XPath по маске, а то я нашел только одну * и то она работает только когда одна.

R>>Есть какие-нибудь втроенные методы поиска по маске?

L>Ты лучше скажи чего тебе надо.


Ок более конкретный вопрос:
есть допустир XML такого вида

<?xml version="1.0" encoding="UTF-8" ?>
<resultset>
<row>
<id>44</id>
<english>44</english>
<russian>кк</russian>
<german>44</german>
</row>
<row>
<id>444444</id>
<english>444444</english>
<russian>Фыва</russian>
<german>444</german>
</row>
...
<row>
<id>zxcv</id>
<english>zxcv</english>
<russian>Фыв</russian>
<german>zxcv</german>
</row>
</resultset>

и надо выбрать от сюда элементы которые бы удовлетворяли бы маске (накладываться будет на id или другой элемент <row>).
Маски должны быть примерно следующего вида:
— *44*
— *5*ч*
и т.д. будет хорошо если будет поддерживаться и ?(для одного символа)
Re: Поиск в XML по маске
От: Bob Kotl Россия  
Дата: 10.08.04 14:48
Оценка: 1 (1)
Здравствуйте, Return, Вы писали:

R>А можно ли искать в XML с помощью XPath по маске, а то я нашел только одну * и то она работает только когда одна.

R>Есть какие-нибудь втроенные методы поиска по маске?
в XPath-выражениях можно использовать строковые функции, например:
Re[3]: Поиск в XML по маске
От: Lloyd Россия  
Дата: 11.08.04 06:31
Оценка:
Здравствуйте, Return, Вы писали:

R>и надо выбрать от сюда элементы которые бы удовлетворяли бы маске (накладываться будет на id или другой элемент <row>).

R>Маски должны быть примерно следующего вида:
R>- *44*
R>- *5*ч*
R>и т.д. будет хорошо если будет поддерживаться и ?(для одного символа)

Для чего тебе это надо?
Если чисто академический интерес, то напрямую нельзя, только с использованием функций расширения.
Если практический — опиши задачу, возможно, ее м. будет решить имеющимися средствами.
Re[4]: Поиск в XML по маске
От: Return Россия  
Дата: 11.08.04 06:51
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, Return, Вы писали:


R>>и надо выбрать от сюда элементы которые бы удовлетворяли бы маске (накладываться будет на id или другой элемент <row>).

R>>Маски должны быть примерно следующего вида:
R>>- *44*
R>>- *5*ч*
R>>и т.д. будет хорошо если будет поддерживаться и ?(для одного символа)

L>Для чего тебе это надо?

L>Если чисто академический интерес, то напрямую нельзя, только с использованием функций расширения.
L>Если практический — опиши задачу, возможно, ее м. будет решить имеющимися средствами.

Страница получает данные и выводит их с помощью JavaScript, а выборка нужна чтобы создать фильтр для выводимых данных.. Да тут уже сказали, что есть ф-ции для этого. Только вот я не знаю, является ли мое решение оптимальным:

<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" omit-xml-declaration="no" encoding="UTF-8"/>

<xsl:template match="resultset">
<resultset>
    <xsl:for-each select="row">
        <xsl:copy-of select="."/>
    </xsl:for-each>
</resultset>    
</xsl:template>

</xsl:stylesheet>



<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="data_mask.xsl"?>
<resultset>
  <row>
    <id>1</id>
    <english>1</english>
    <russian>20</russian>
    <german>13</german>
  </row>
  <row>
    <id>2</id>
    <english>2</english>
    <russian>15</russian>
    <german>23</german>
  </row>
  <row>
    <id>3</id>
    <english>3</english>
    <russian>10</russian>
    <german>8</german>
  </row>
  <row>
    <id>4</id>
    <english>4</english>
    <russian>3</russian>
    <german>44</german>
  </row>
  <row>
    <id>5</id>
    <english>5</english>
    <russian>1</russian>
    <german>3</german>
  </row>
</resultset>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.