Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XML - XSLT - TXT / 24 сообщений из 24, страница 1 из 1
26.07.2013, 14:59
    #38345330
bamper78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
Бобрый день.
Будьте добры, обясниет или привидите пример как преобразовать XML - XSLT - TXT
Иммется файл XML
Код: 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.
<?xml version="1.0" encoding="utf-8"?>
<EdkamForm ver="10" prntodef="0" defprn="None">
  <TfrPage nm="Page1" pgsz="256" pgw="1467" pgh="1067" pgmg="[0,0,0,0]" pgor="poLandscape" pgb="65535" umg="-1" bdst="3" cl="clBtnFace">
    <TfrElemView nm="Element1" x="304" y="144" dx="16" dy="32" grp="1" n="3" id="125" deg="90"/>
    <TfrMemoView nm="Memo1" x="325" y="145" dx="18" dy="16" restr="71" grp="2" n="3" lnk="Element1"/>
    <TfrMemoView nm="Memo2" x="321" y="156" dx="26" dy="16" restr="71" grp="3" n="3" lnk="Element1"/>
    <TfrMemoView nm="Memo3" x="324" y="167" dx="18" dy="16" restr="71" grp="4" n="3" lnk="Element1"/>
    <TfrElemView nm="Element2" x="192" y="144" dx="16" dy="48" grp="1" n="2" id="234" deg="90"/>
    <TfrMemoView nm="Memo4" x="213" y="152" dx="18" dy="16" restr="71" grp="2" n="2" lnk="Element2"/>
    <TfrMemoView nm="Memo5" x="208" y="161" dx="26" dy="16" restr="71" grp="3" n="2" lnk="Element2"/>
    <TfrMemoView nm="Memo6" x="212" y="172" dx="18" dy="16" restr="71" grp="4" n="2" lnk="Element2"/>
    <TfrElemView nm="Element3" x="256" y="128" dx="48" dy="16" grp="1" n="1" id="234"/>
    <TfrMemoView nm="Memo7" x="271" y="109" dx="18" dy="16" restr="71" grp="2" n="1" lnk="Element3"/>
    <TfrMemoView nm="Memo8" x="267" y="143" dx="26" dy="16" restr="71" grp="3" n="1" lnk="Element3"/>
    <TfrMemoView nm="Memo9" x="271" y="155" dx="18" dy="16" restr="71" grp="4" n="1" lnk="Element3"/>
    <TfrElemView nm="Element4" x="208" y="192" dx="32" dy="16" id="100"/>
    <TfrElemView nm="Element5" x="352" y="128" dx="16" dy="16" id="0"/>
    <TfrElemView nm="Element6" x="224" y="128" dx="16" dy="16" id="0"/>
    <TfrElemView nm="Element7" x="192" y="192" dx="16" dy="16" id="1" deg="270"/>
    <TfrElemView nm="Element8" x="192" y="128" dx="16" dy="16" id="3" deg="270"/>
    <TfrElemView nm="Element9" x="304" y="128" dx="16" dy="16" id="3" deg="270"/>
    <TfrElemView nm="Element10" x="144" y="192" dx="16" dy="16" id="16"/>
    <TfrElemView nm="Element11" x="144" y="128" dx="16" dy="16" id="16"/>
    <TfrElemView nm="Element12" x="368" y="128" dx="16" dy="16" id="16" deg="180"/>
    <TfrElemView nm="Element13" x="176" y="192" dx="16" dy="16" id="20"/>
    <TfrElemView nm="Element14" x="176" y="128" dx="16" dy="16" id="20"/>
    <TfrElemView nm="Element15" x="320" y="128" dx="16" dy="16" id="20"/>
    <TfrElemView nm="Element16" x="208" y="128" dx="16" dy="16" id="20"/>
    <TfrElemView nm="Element17" x="240" y="144" dx="16" dy="16" id="22" deg="90"/>
    <TfrElemView nm="Element18" x="240" y="128" dx="16" dy="16" id="31"/>
    <TfrElemView nm="Element19" x="160" y="192" dx="16" dy="16" id="68" deg="180"/>
    <TfrElemView nm="Element20" x="160" y="128" dx="16" dy="16" id="68" deg="180"/>
    <TfrElemView nm="Element21" x="336" y="128" dx="16" dy="16" id="68"/>
    <TfrMemoView nm="Memo10" x="52" y="115" dx="105" dy="16" restr="31" grp="6" n="3"/>
    <TfrMemoView nm="Memo11" x="52" y="176" dx="119" dy="16" restr="31" grp="6" n="2"/>
    <TfrMemoView nm="Memo12" x="326" y="112" dx="105" dy="16" restr="31" grp="6" n="1"/>
  </TfrPage>
</EdkamForm>
...
Рейтинг: 0 / 0
26.07.2013, 18:50
    #38345913
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
xsl:output

А какого вида должен быть текст, требуется угадать?
...
Рейтинг: 0 / 0
27.07.2013, 18:31
    #38346414
bamper78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
Antonariy,

В файл должны быть добавлены значения атрибутов элементов схемы из тэгов TfrElemView (каждый с новой строки) в следующем формате:
"<file>","<nm>",<dx>,<dy>,<n>,<id>,<deg>
,где <file> - имя преобразуемого файла без расширения,
<nm> - значение атрибута nm
<dx> - значение атрибута dx
<dy> - значение атрибута dy
<n> - значение атрибута n, либо пустая строка
<id> - значение атрибута id, либо пустая строка
<deg> - значение атрибута deg, либо пустая строка

Количество добавленных записей должно соответствовать количеству тэгов TfrElemView в исходном файле.
...
Рейтинг: 0 / 0
27.07.2013, 22:47
    #38346490
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
Код: xml
1.
2.
3.
4.
5.
6.
7.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
  <xsl:output method="text"/>
  <xsl:template match="/"><xsl:apply-templates select="EdkamForm/TfrPage/*"/></xsl:template>
  <xsl:template match="TfrElemView"><xsl:value-of select="@nm"/>,<xsl:value-of select="@dx"/>,<xsl:value-of select="@dy"/>,<xsl:value-of select="@n"/>,<xsl:value-of select="@id"/>,<xsl:value-of select="@deg"/>
</xsl:template>
</xsl:stylesheet>

Имя файла взять неоткуда, а все остальное ровно в таком виде, включая отступы и переносы.
...
Рейтинг: 0 / 0
28.07.2013, 13:17
    #38346582
bamper78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
Antonariy,

Спасибо.

а как офрмить, что бы формировалось в таком формате, а не в одну строку -

Element1, 16, 32, 3, 125, 90
Element2, 16, 48, 2, 234, 90
Element3, 48, 16, 1, 234,
Element4, 32, 16, , 100,
Element5, 16, 16, , 0,
Element6, 16, 16, , 0,
Element7, 16, 16, , 1, 270
Element8, 16, 16, , 3, 270
Element9, 16, 16, , 3, 270
Element10, 16, 16, , 16,
Element11, 16, 16, , 16,
Element12, 16, 16, , 16, 180
Element13, 16, 16, , 20,
Element14, 16, 16, , 20,
Element15, 16, 16, , 20,
Element16, 16, 16, , 20,
Element17, 16, 16, , 22, 90
Element18, 16, 16, , 31,
Element19, 16, 16, , 68, 180
Element20, 16, 16, , 68, 180
Element21, 16, 16, , 68,
...
Рейтинг: 0 / 0
29.07.2013, 07:23
    #38346950
mhx
mhx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
Вставьте, где нужно, разрыв строки
Код: xml
1.
2.
<xsl:text>
</xsl:text>
...
Рейтинг: 0 / 0
29.07.2013, 07:28
    #38346952
mhx
mhx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
епт, там между тэгами должно быть
...
Рейтинг: 0 / 0
29.07.2013, 07:31
    #38346953
mhx
mhx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
Да твою ж налево. x0a; (без пробелов)
...
Рейтинг: 0 / 0
29.07.2013, 11:11
    #38347105
bamper78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
mhx,

Код: xml
1.
<xsl:text>&#x0A;</xsl:text>



Спасибо, работает
...
Рейтинг: 0 / 0
29.07.2013, 17:29
    #38347681
bamper78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
bamper78,

Подскажите, как правильно синтаксис писать - требуется сохранять в файл,например txt, результат xsl
...
Рейтинг: 0 / 0
29.07.2013, 18:00
    #38347729
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
Непонятен смысл вопроса. XSL ничего не знает про файлы.
...
Рейтинг: 0 / 0
29.07.2013, 18:14
    #38347747
bamper78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
Antonariy,

а вот это код что делает, я предположил, что выводит в файл результат

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
    <xsl:output method="text"/>
    <xsl:result-document href="foo.txt" method=text />
    <xsl:template match="/">
    </xsl:template>

  <xsl:template match="/build/build">
    <xsl:variable name="buildNumber" select="."/>
    <xsl:element name="build">
      <xsl:value-of select="$buildNumber + 1"/>
    </xsl:element>
...
Рейтинг: 0 / 0
29.07.2013, 18:21
    #38347756
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
bamper78
Код: xml
1.
<xsl:result-document href="foo.txt" method=text />


Это из XSLT 2.0 для которого нужен соответствующий парсер.
...
Рейтинг: 0 / 0
29.07.2013, 18:57
    #38347788
bamper78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
bazile,

так все таки можно формировать файл результата xsl ? и как
...
Рейтинг: 0 / 0
29.07.2013, 19:17
    #38347809
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
bamper78, написать программу выполняющую преобразование и сохраняющую результат в файл или взять готовую .
...
Рейтинг: 0 / 0
30.07.2013, 07:02
    #38348079
mhx
mhx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
Из консоли
Код: sql
1.
2.
$ xmlstarlet tr style.xsl file.xml > out.xml
$ xsltproc --html -o out.html style.xsl file.xml
...
Рейтинг: 0 / 0
31.07.2013, 14:45
    #38350280
bamper78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
mhx,

Для вывода в нужный фрмат использую NAnt, там все просто
Код: xml
1.
<style style="Element.mid.xsl" in="13798.xml" out="Element.mid">



Впорос теперь в другом, мне в выходной файл нужно передавать имя файла.xml который обрабатывается. Я создал параметр
Код: xml
1.
<xsl:param name="file_name" select="''"/>

в xslt.

так верно ?
...
Рейтинг: 0 / 0
31.07.2013, 15:47
    #38350414
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
bamper78 мне в выходной файл нужно передавать имя файла.xml который обрабатываетсяВнимательно читайте документацию по NAnt.

select берет данные из xml-документа, если в xml-документе его имени нет, если нельзя спросить о нем парсер с помощью специфической команды, то и взять его неоткуда.
...
Рейтинг: 0 / 0
31.07.2013, 17:27
    #38350600
bamper78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
Antonariy,

Плдскажите тогда как правильно вывести в результат имя файла XML

Код: xml
1.
2.
3.
4.
<xsl:param name="filename"/>
              ....
              
               <xsl:value-of select="$filename"/>



дальше не пойму
...
Рейтинг: 0 / 0
31.07.2013, 22:32
    #38350894
bamper78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
bamper78,

все, через nant разобрался
...
Рейтинг: 0 / 0
01.08.2013, 18:56
    #38352066
bamper78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
bamper78,

Вопрос, делаю вычитание атрибутов
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
exclude-result-prefixes="msxsl">
  <xsl:output method="text"/>
  <xsl:template match="/">
<xsl:text>&#x0A;</xsl:text><xsl:apply-templates select="EdkamForm/TfrPage/*"/></xsl:template>
  <xsl:template match="TfrElemView"><xsl:text>Point</xsl:text><xsl:text> </xsl:text><xsl:value-of select="@x"/> <xsl:text> 
</xsl:text>

<xsl:value-of select="//@pgh - //@y"/>

<xsl:text>&#x0A;</xsl:text>
</xsl:template>
</xsl:stylesheet>



Результат формирует однин для все записей, по первой строке. подскажите как сделать что бы считал для каждой отдельно.
...
Рейтинг: 0 / 0
01.08.2013, 19:17
    #38352089
bamper78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
bamper78bamper78,

Вопрос, делаю вычитание атрибутов
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
exclude-result-prefixes="msxsl">
  <xsl:output method="text"/>
  <xsl:template match="/">
<xsl:text>&#x0A;</xsl:text><xsl:apply-templates select="EdkamForm/TfrPage/*"/></xsl:template>
  <xsl:template match="TfrElemView"><xsl:text>Point</xsl:text><xsl:text> </xsl:text><xsl:value-of select="@x"/> <xsl:text> 
</xsl:text>

<xsl:value-of select="//@pgh - //@y"/>

<xsl:text>&#x0A;</xsl:text>
</xsl:template>
</xsl:stylesheet>


Вот XML

Результат формирует однин для все записей, по первой строке. подскажите как сделать что бы считал для каждой отдельно.
...
Рейтинг: 0 / 0
01.08.2013, 19:18
    #38352092
bamper78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
bamper78bamper78bamper78,

Вопрос, делаю вычитание атрибутов
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
exclude-result-prefixes="msxsl">
  <xsl:output method="text"/>
  <xsl:template match="/">
<xsl:text>&#x0A;</xsl:text><xsl:apply-templates select="EdkamForm/TfrPage/*"/></xsl:template>
  <xsl:template match="TfrElemView"><xsl:text>Point</xsl:text><xsl:text> </xsl:text><xsl:value-of select="@x"/> <xsl:text> 
</xsl:text>

<xsl:value-of select="//@pgh - //@y"/>

<xsl:text>&#x0A;</xsl:text>
</xsl:template>
</xsl:stylesheet>


Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/xsl' href='Text.mid.xsl'?>
<EdkamForm ver="10" prntodef="0" defprn="None">
  <TfrPage nm="Page1" pgsz="256" pgw="1467" pgh="1067" pgmg="[0,0,0,0]" pgor="poLandscape" pgb="65535" umg="-1" bdst="3" cl="clBtnFace">
    <TfrElemView nm="Element1" x="304" y="144" dx="16" dy="32" grp="1" n="3" id="125" deg="90"/>
    <TfrMemoView nm="Memo1" x="325" y="145" dx="18" dy="16" restr="71" grp="2" n="3" lnk="Element1"/>
    <TfrMemoView nm="Memo2" x="321" y="156" dx="26" dy="16" restr="71" grp="3" n="3" lnk="Element1"/>
    <TfrMemoView nm="Memo3" x="324" y="167" dx="18" dy="16" restr="71" grp="4" n="3" lnk="Element1"/>
    <TfrElemView nm="Element2" x="192" y="144" dx="16" dy="48" grp="1" n="2" id="234" deg="90"/>
    <TfrMemoView nm="Memo4" x="213" y="152" dx="18" dy="16" restr="71" grp="2" n="2" lnk="Element2"/>


Вот XML

Результат формирует однин для все записей, по первой строке. подскажите как сделать что бы считал для каждой отдельно.
...
Рейтинг: 0 / 0
01.08.2013, 20:11
    #38352134
bamper78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML - XSLT - TXT
bamper78,

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


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