powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XML - XSLT - TXT
24 сообщений из 24, страница 1 из 1
XML - XSLT - TXT
    #38345330
bamper78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бобрый день.
Будьте добры, обясниет или привидите пример как преобразовать 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
XML - XSLT - TXT
    #38345913
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xsl:output

А какого вида должен быть текст, требуется угадать?
...
Рейтинг: 0 / 0
XML - XSLT - TXT
    #38346414
bamper78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
XML - XSLT - TXT
    #38346490
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
XML - XSLT - TXT
    #38346582
bamper78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
XML - XSLT - TXT
    #38346950
mhx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mhx
Гость
Вставьте, где нужно, разрыв строки
Код: xml
1.
2.
<xsl:text>
</xsl:text>
...
Рейтинг: 0 / 0
XML - XSLT - TXT
    #38346952
mhx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mhx
Гость
епт, там между тэгами должно быть
...
Рейтинг: 0 / 0
XML - XSLT - TXT
    #38346953
mhx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mhx
Гость
Да твою ж налево. x0a; (без пробелов)
...
Рейтинг: 0 / 0
XML - XSLT - TXT
    #38347105
bamper78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mhx,

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



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

Подскажите, как правильно синтаксис писать - требуется сохранять в файл,например txt, результат xsl
...
Рейтинг: 0 / 0
XML - XSLT - TXT
    #38347729
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятен смысл вопроса. XSL ничего не знает про файлы.
...
Рейтинг: 0 / 0
XML - XSLT - TXT
    #38347747
bamper78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
XML - XSLT - TXT
    #38347756
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bamper78
Код: xml
1.
<xsl:result-document href="foo.txt" method=text />


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

так все таки можно формировать файл результата xsl ? и как
...
Рейтинг: 0 / 0
XML - XSLT - TXT
    #38347809
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bamper78, написать программу выполняющую преобразование и сохраняющую результат в файл или взять готовую .
...
Рейтинг: 0 / 0
XML - XSLT - TXT
    #38348079
mhx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mhx
Гость
Из консоли
Код: sql
1.
2.
$ xmlstarlet tr style.xsl file.xml > out.xml
$ xsltproc --html -o out.html style.xsl file.xml
...
Рейтинг: 0 / 0
XML - XSLT - TXT
    #38350280
bamper78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
XML - XSLT - TXT
    #38350414
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bamper78 мне в выходной файл нужно передавать имя файла.xml который обрабатываетсяВнимательно читайте документацию по NAnt.

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

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

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



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

все, через nant разобрался
...
Рейтинг: 0 / 0
XML - XSLT - TXT
    #38352066
bamper78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
XML - XSLT - TXT
    #38352089
bamper78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
XML - XSLT - TXT
    #38352092
bamper78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
XML - XSLT - TXT
    #38352134
bamper78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bamper78,

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


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