Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / как организовать и получить результат пересечения двух XML / 19 сообщений из 19, страница 1 из 1
02.03.2008, 17:26
    #35165721
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
XML 1
<ROOT>
<D NAME="a"/>
<D NAME="b"/>
<D NAME="c"/>
<D NAME="d"/>
<D NAME="e"/>
<D NAME="f"/>
<D NAME="g"/>
</ROOT>


XML 2
<ROOT>
<D NAME="b"/>
<D NAME="d"/>
<D NAME="a"/>
<D NAME="e"/>
</ROOT>

нужно получить XML ноды которого есть только в XML1
<ROOT>
<D NAME="c"/>
<D NAME="f"/>
<D NAME="g"/>
</ROOT>

есть возможность сделать это как то по быстрому
...
Рейтинг: 0 / 0
02.03.2008, 19:15
    #35165788
SuSa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
1. попробуй поискать, такое было
принцып был примерно такой. по одному файлу формируешь шаблоны для поиска. по второму ищешь выполнение этого условия
...
Рейтинг: 0 / 0
02.03.2008, 19:17
    #35165791
SuSa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
помоему как раз подойдет мой предыдущий ответ. он как раз был нацелен на проверку на неповторение.
...
Рейтинг: 0 / 0
02.03.2008, 19:23
    #35165797
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
ну у меня вопрос более широкого плана

именно работа с множествами в XSLT
пересечение обьединение разность ...

порядок множеств в самом XML может быть разным
можно ли такое реализовать
...
Рейтинг: 0 / 0
03.03.2008, 08:45
    #35166153
SuSa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
гыы, теория графов на xslt. Круто придумано. если реализуешь можно будет куда нить выложить типа xmlhack или Wiki.
...
Рейтинг: 0 / 0
03.03.2008, 12:17
    #35166625
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
$set1[not(@NAME=$set2/@NAME)]
...
Рейтинг: 0 / 0
03.03.2008, 12:37
    #35166691
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
нет не ясно

что я загоняю в $set1 , $set2
можно ли всю транформацию целиком
...
Рейтинг: 0 / 0
03.03.2008, 12:39
    #35166697
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
вот тут

обьясните нормальным языком как это реализовать
...
Рейтинг: 0 / 0
03.03.2008, 12:43
    #35166710
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
michael Rчто я загоняю в $set1 , $set2множества, разность которых считаем.
...
Рейтинг: 0 / 0
03.03.2008, 12:46
    #35166721
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
michael R вот тут это не пойдёт: у тебя не настоящее пересечение.
...
Рейтинг: 0 / 0
03.03.2008, 12:52
    #35166748
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
maXmo это не пойдёт: у тебя не настоящее пересечение.

почему ?
это из-за повторов ?
...
Рейтинг: 0 / 0
03.03.2008, 12:54
    #35166757
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
из-за того, что элементы, считающиеся одинаковыми, на самом деле разные.
...
Рейтинг: 0 / 0
03.03.2008, 13:11
    #35166827
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
нет не выходит

XML (немного поменял)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
	<A NAME="a"/>
	<A NAME="b"/>
	<A NAME="c"/>
	<A NAME="d"/>
	<A NAME="e"/>
	<A NAME="f"/>
	<A NAME="g"/>
	
        <B NAME="b"/>
	<B NAME="d"/>
	<B NAME="a"/>
	<B NAME="e"/>
</ROOT>

XSLT
Код: plaintext
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.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="xml" />

<xsl:variable name="set1">
  <xsl:value-of select="//A/@NAME"/>
</xsl:variable>
<xsl:variable name="set2">
  <xsl:value-of select="//B/@NAME"/>
</xsl:variable>


<xsl:template match="ROOT"> 
	 <ROOT>
		 <xsl:for-each select="//@NAME">
				 <xsl:if test="$set1[not(@NAME=$set2/@NAME)] ">
					<xsl:element name="S"> 
						 <xsl:copy-of select="."/>
					</xsl:element>	 
				 </xsl:if>
		</xsl:for-each>	 
  	 </ROOT>
</xsl:template>  


</xsl:stylesheet>

выдаётся весь список
...
Рейтинг: 0 / 0
03.03.2008, 13:56
    #35166984
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
maXmo $set1[not(@NAME=$set2/@NAME)]

что именно и каким образом я загоняю значения в эти переменные из соему XML
какой формат записи
...
Рейтинг: 0 / 0
04.03.2008, 10:55
    #35168871
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
загони //A и //B, я так понял, они составляют элементы множеств.
...
Рейтинг: 0 / 0
04.03.2008, 10:57
    #35168876
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
$set1[not(@NAME=$set2/@NAME)] уже будет содержать разность множеств, просто скопировать его и всё.
...
Рейтинг: 0 / 0
04.03.2008, 17:31
    #35170674
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
я жутко извеняюсь
у меня пусто

XML
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
	<A NAME="a"/>
	<A NAME="b"/>
	<A NAME="c"/>
	<A NAME="d"/>
	<A NAME="e"/>
	<A NAME="f"/>
	<A NAME="g"/>
        <B NAME="b"/>
	<B NAME="d"/>
	<B NAME="a"/>
	<B NAME="e"/>
</ROOT>

XSLT
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="xml" />

<xsl:variable name="set1">
  <xsl:value-of select="//A" />
</xsl:variable>
<xsl:variable name="set2">
  <xsl:value-of select="//B" />
</xsl:variable>


<xsl:template match="ROOT"> 
	 <ROOT>
		 <xsl:copy-of select="$set1[not(@NAME=$set2/@NAME)]" />
  	 </ROOT>
</xsl:template>  


</xsl:stylesheet>


Result
Код: plaintext
1.
2.
<?xml version="1.0" encoding="UTF-8"?>
<ROOT xmlns:fo="http://www.w3.org/1999/XSL/Format"></ROOT>

что я не так делаю
...
Рейтинг: 0 / 0
12.03.2008, 11:07
    #35184401
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
ты не понимаешь, что делает value-of

<xsl:variable name="set1" select="//A" />
...
Рейтинг: 0 / 0
12.03.2008, 13:31
    #35184936
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать и получить результат пересечения двух XML
maXmo
да работает и разность и пересечение множеств
продолжу своё увлекательное занятие с теорией множеств
Спасибо
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / как организовать и получить результат пересечения двух XML / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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