powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Преобразование ADO-XML в ClientDataSet(CDS)-XML
9 сообщений из 9, страница 1 из 1
Преобразование ADO-XML в ClientDataSet(CDS)-XML
    #37479046
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте,
нужно преобразовать Xml-файл который делает ADO в xml-файл который понимает ClientDataSet(который от борланда)
Исходный XML-ADO
Код: 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.
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.
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
 xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
 xmlns:rs='urn:schemas-microsoft-com:rowset'
 xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
 <s:ElementType name='row' content='eltOnly' rs:updatable='true'>
  <s:AttributeType name='stor_id' rs:number='1' rs:writeunknown='true' rs:basecatalog='pubs' rs:basetable='sales'
    rs:basecolumn='stor_id' rs:keycolumn='true'>
   <s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='4' rs:fixedlength='true' rs:maybenull='false'/>
  </s:AttributeType>
  <s:AttributeType name='ord_num' rs:number='2' rs:writeunknown='true' rs:basecatalog='pubs' rs:basetable='sales'
    rs:basecolumn='ord_num' rs:keycolumn='true'>
   <s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='20' rs:maybenull='false'/>
  </s:AttributeType>
  <s:AttributeType name='ord_date' rs:number='3' rs:writeunknown='true' rs:basecatalog='pubs' rs:basetable='sales'
    rs:basecolumn='ord_date'>
   <s:datatype dt:type='dateTime' rs:dbtype='timestamp' dt:maxLength='16' rs:scale='3' rs:precision='23' 
rs:fixedlength='true'
    rs:maybenull='false'/>
  </s:AttributeType>
  <s:AttributeType name='qty' rs:number='4' rs:writeunknown='true' rs:basecatalog='pubs' rs:basetable='sales'
    rs:basecolumn='qty'>
   <s:datatype dt:type='i2' dt:maxLength='2' rs:precision='5' rs:fixedlength='true' rs:maybenull='false'/>
  </s:AttributeType>
  <s:AttributeType name='payterms' rs:number='5' rs:writeunknown='true' rs:basecatalog='pubs' rs:basetable='sales'
    rs:basecolumn='payterms'>
   <s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='12' rs:maybenull='false'/>
  </s:AttributeType>
  <s:AttributeType name='title_id' rs:number='6' rs:writeunknown='true' rs:basecatalog='pubs' rs:basetable='sales'
    rs:basecolumn='title_id' rs:keycolumn='true'>
   <s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='6' rs:maybenull='false'/>
  </s:AttributeType>
  <s:extends type='rs:rowbase'/>
 </s:ElementType>
</s:Schema>
<rs:data>
 <z:row stor_id='6380' ord_num='6871' ord_date='1994-09-14T00:00:00' qty='5' payterms='Net 60' title_id='BU1032'/>
 <z:row stor_id='6380' ord_num='722a' ord_date='1994-09-13T00:00:00' qty='3' payterms='Net 60' title_id='PS2091'/>
 <z:row stor_id='7066' ord_num='A2976' ord_date='1993-05-24T00:00:00' qty='50' payterms='Net 30' title_id='PC8888'/>
 <z:row stor_id='7066' ord_num='QA7442.3' ord_date='1994-09-13T00:00:00' qty='75' payterms='ON invoice' 
title_id='PS2091'/>
 <z:row stor_id='7067' ord_num='D4482' ord_date='1994-09-14T00:00:00' qty='10' payterms='Net 60' title_id='PS2091'/>
 <z:row stor_id='7067' ord_num='P2121' ord_date='1992-06-15T00:00:00' qty='40' payterms='Net 30' title_id='TC3218'/>
 <z:row stor_id='7067' ord_num='P2121' ord_date='1992-06-15T00:00:00' qty='20' payterms='Net 30' title_id='TC4203'/>
 <z:row stor_id='7067' ord_num='P2121' ord_date='1992-06-15T00:00:00' qty='20' payterms='Net 30' title_id='TC7777'/>
 <z:row stor_id='7131' ord_num='N914008' ord_date='1994-09-14T00:00:00' qty='20' payterms='Net 30' title_id='PS2091'/>
 <z:row stor_id='7131' ord_num='N914014' ord_date='1994-09-14T00:00:00' qty='25' payterms='Net 30' title_id='MC3021'/>
 <z:row stor_id='7131' ord_num='P3087a' ord_date='1993-05-29T00:00:00' qty='20' payterms='Net 60' title_id='PS1372'/>
 <z:row stor_id='7131' ord_num='P3087a' ord_date='1993-05-29T00:00:00' qty='25' payterms='Net 60' title_id='PS2106'/>
 <z:row stor_id='7131' ord_num='P3087a' ord_date='1993-05-29T00:00:00' qty='15' payterms='Net 60' title_id='PS3333'/>
 <z:row stor_id='7131' ord_num='P3087a' ord_date='1993-05-29T00:00:00' qty='25' payterms='Net 60' title_id='PS7777'/>
 <z:row stor_id='7896' ord_num='QQ2299' ord_date='1993-10-28T00:00:00' qty='15' payterms='Net 60' title_id='BU7832'/>
 <z:row stor_id='7896' ord_num='TQ456' ord_date='1993-12-12T00:00:00' qty='10' payterms='Net 60' title_id='MC2222'/>
 <z:row stor_id='7896' ord_num='X999' ord_date='1993-02-21T00:00:00' qty='35' payterms='ON invoice' title_id='BU2075'/>
 <z:row stor_id='8042' ord_num='423LL922' ord_date='1994-09-14T00:00:00' qty='15' payterms='ON invoice' 
title_id='MC3021'/>
 <z:row stor_id='8042' ord_num='423LL930' ord_date='1994-09-14T00:00:00' qty='10' payterms='ON invoice' 
title_id='BU1032'/>
 <z:row stor_id='8042' ord_num='P723' ord_date='1993-03-11T00:00:00' qty='25' payterms='Net 30' title_id='BU1111'/>
 <z:row stor_id='8042' ord_num='QA879.1' ord_date='1993-05-22T00:00:00' qty='30' payterms='Net 30' title_id='PC1035'/>
</rs:data>
</xml>

Трансформация XSL-ADO2CDS
Код: 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.
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.
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
 xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
 xmlns:rs='urn:schemas-microsoft-com:rowset'
 xmlns:z='#RowsetSchema'>
<xsl:output method="xml" encoding="windows-1251" omit-xml-declaration="no" indent="yes" media-type="text/xml"/>

 <xsl:template match="/">
  <DATAPACKET Version="2.0">
   <METADATA>
    <FIELDS>
     <xsl:for-each select="xml/s:Schema/s:ElementType/s:AttributeType">
      <FIELD>
       <xsl:attribute name="attrname">
        <xsl:value-of select="./@name"/>
       </xsl:attribute>
       <xsl:choose>
        <xsl:when test="./s:datatype/@dt:type = 'string'">
         <xsl:attribute name="fieldtype">
          <xsl:value-of select="./s:datatype/@dt:type"/>
         </xsl:attribute>
         <xsl:attribute name="WIDTH">
          <xsl:value-of select="./s:datatype/@dt:maxLength"/>
         </xsl:attribute>
        </xsl:when>
        <xsl:when test="./s:datatype/@dt:type = 'float'">
         <xsl:attribute name="fieldtype">
          r8
         </xsl:attribute>
        </xsl:when>
        <xsl:otherwise>
         <xsl:attribute name="fieldtype">
          <xsl:value-of select="./s:datatype/@dt:type"/>
         </xsl:attribute>
        </xsl:otherwise>
       </xsl:choose>
      </FIELD>
     </xsl:for-each>
    </FIELDS>
    <PARAMS/>
   </METADATA>
   <ROWDATA>
<!--    <xsl:for-each select="xml/rs:data/z:row">-->
     <ROW>
      <xsl:template match="*">
       <xsl:copy>
        <xsl:apply-templates select="@*" />
        <xsl:apply-templates/>
       </xsl:copy>
      </xsl:template>
<!--      <xsl:copy>
       <xsl:apply-templates select="./@*"/>
      </xsl:copy> -->
     </ROW>
<!--    </xsl:for-each> -->
   </ROWDATA>
  </DATAPACKET>
 </xsl:template>
</xsl:stylesheet>

Что должно получится XML-CDS
Код: 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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
  <?xml version="1.0" standalone="yes" ?>
- <DATAPACKET Version="2.0">
- <METADATA>
- <FIELDS>
  <FIELD attrname="stor_id" fieldtype="string" SUBTYPE="FixedChar" WIDTH="4" />
  <FIELD attrname="ord_num" fieldtype="string" WIDTH="20" />
  <FIELD attrname="ord_date" fieldtype="dateTime" />
  <FIELD attrname="qty" fieldtype="i2" />
  <FIELD attrname="payterms" fieldtype="string" WIDTH="12" />
  <FIELD attrname="title_id" fieldtype="string" WIDTH="6" />
  </FIELDS>
  <PARAMS />
  </METADATA>
- <ROWDATA>
  <ROW stor_id="6380" ord_num="6871" ord_date="19940914" qty="5" payterms="Net 60" title_id="BU1032" />
  <ROW stor_id="6380" ord_num="722a" ord_date="19940913" qty="3" payterms="Net 60" title_id="PS2091" />
  <ROW stor_id="7066" ord_num="A2976" ord_date="19930524" qty="50" payterms="Net 30" title_id="PC8888" />
  <ROW stor_id="7066" ord_num="QA7442.3" ord_date="19940913" qty="75" payterms="ON invoice" title_id="PS2091" />
  <ROW stor_id="7067" ord_num="D4482" ord_date="19940914" qty="10" payterms="Net 60" title_id="PS2091" />
  <ROW stor_id="7067" ord_num="P2121" ord_date="19920615" qty="40" payterms="Net 30" title_id="TC3218" />
  <ROW stor_id="7067" ord_num="P2121" ord_date="19920615" qty="20" payterms="Net 30" title_id="TC4203" />
  <ROW stor_id="7067" ord_num="P2121" ord_date="19920615" qty="20" payterms="Net 30" title_id="TC7777" />
  <ROW stor_id="7131" ord_num="N914008" ord_date="19940914" qty="20" payterms="Net 30" title_id="PS2091" />
  <ROW stor_id="7131" ord_num="N914014" ord_date="19940914" qty="25" payterms="Net 30" title_id="MC3021" />
  <ROW stor_id="7131" ord_num="P3087a" ord_date="19930529" qty="20" payterms="Net 60" title_id="PS1372" />
  <ROW stor_id="7131" ord_num="P3087a" ord_date="19930529" qty="25" payterms="Net 60" title_id="PS2106" />
  <ROW stor_id="7131" ord_num="P3087a" ord_date="19930529" qty="15" payterms="Net 60" title_id="PS3333" />
  <ROW stor_id="7131" ord_num="P3087a" ord_date="19930529" qty="25" payterms="Net 60" title_id="PS7777" />
  <ROW stor_id="7896" ord_num="QQ2299" ord_date="19931028" qty="15" payterms="Net 60" title_id="BU7832" />
  <ROW stor_id="7896" ord_num="TQ456" ord_date="19931212" qty="10" payterms="Net 60" title_id="MC2222" />
  <ROW stor_id="7896" ord_num="X999" ord_date="19930221" qty="35" payterms="ON invoice" title_id="BU2075" />
  <ROW stor_id="8042" ord_num="423LL922" ord_date="19940914" qty="15" payterms="ON invoice" title_id="MC3021" />
  <ROW stor_id="8042" ord_num="423LL930" ord_date="19940914" qty="10" payterms="ON invoice" title_id="BU1032" />
  <ROW stor_id="8042" ord_num="P723" ord_date="19930311" qty="25" payterms="Net 30" title_id="BU1111" />
  <ROW stor_id="8042" ord_num="QA879.1" ord_date="19930522" qty="30" payterms="Net 30" title_id="PC1035" />
  </ROWDATA>
  </DATAPACKET>

Что получается
Код: 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.
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.
<?xml version="1.0" encoding="UTF-16"?>
<DATAPACKET Version="2.0" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" 
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" 
xmlns:z="#RowsetSchema">
 <METADATA>
  <FIELDS>
   <FIELD attrname="stor_id" fieldtype="string" WIDTH="4"/>
   <FIELD attrname="ord_num" fieldtype="string" WIDTH="20"/>
   <FIELD attrname="ord_date" fieldtype="dateTime"/>
   <FIELD attrname="qty" fieldtype="i2"/>
   <FIELD attrname="payterms" fieldtype="string" WIDTH="12"/>
   <FIELD attrname="title_id" fieldtype="string" WIDTH="6"/>
  </FIELDS>
  <PARAMS/>
 </METADATA>
 <ROWDATA>
  <ROW>
   <z:row> 638068711994 - 09 -14T00: 00 :005Net 60BU1032</z:row>
  </ROW>
  <ROW>
   <z:row>6380722a1994- 09 -13T00: 00 :003Net 60PS2091</z:row>
  </ROW>
  <ROW>
   <z:row>7066A29761993- 05 -24T00: 00 :0050Net 30PC8888</z:row>
  </ROW>
  <ROW>
   <z:row>7066QA7442. 31994 - 09 -13T00: 00 :0075ON invoicePS2091</z:row>
  </ROW>
  <ROW>
   <z:row>7067D44821994- 09 -14T00: 00 :0010Net 60PS2091</z:row>
  </ROW>
  <ROW>
   <z:row>7067P21211992- 06 -15T00: 00 :0040Net 30TC3218</z:row>
  </ROW>
  <ROW>
   <z:row>7067P21211992- 06 -15T00: 00 :0020Net 30TC4203</z:row>
  </ROW>
  <ROW>
   <z:row>7067P21211992- 06 -15T00: 00 :0020Net 30TC7777</z:row>
  </ROW>
  <ROW>
   <z:row>7131N9140081994- 09 -14T00: 00 :0020Net 30PS2091</z:row>
  </ROW>
  <ROW>
   <z:row>7131N9140141994- 09 -14T00: 00 :0025Net 30MC3021</z:row>
  </ROW>
  <ROW>
   <z:row>7131P3087a1993- 05 -29T00: 00 :0020Net 60PS1372</z:row>
  </ROW>
  <ROW>
   <z:row>7131P3087a1993- 05 -29T00: 00 :0025Net 60PS2106</z:row>
  </ROW>
  <ROW>
   <z:row>7131P3087a1993- 05 -29T00: 00 :0015Net 60PS3333</z:row>
  </ROW>
  <ROW>
   <z:row>7131P3087a1993- 05 -29T00: 00 :0025Net 60PS7777</z:row>
  </ROW>
  <ROW>
   <z:row>7896QQ22991993- 10 -28T00: 00 :0015Net 60BU7832</z:row>
  </ROW>
  <ROW>
   <z:row>7896TQ4561993- 12 -12T00: 00 :0010Net 60MC2222</z:row>
  </ROW>
  <ROW>
   <z:row>7896X9991993- 02 -21T00: 00 :0035ON invoiceBU2075</z:row>
  </ROW>
  <ROW>
   <z:row>8042423LL9221994- 09 -14T00: 00 :0015ON invoiceMC3021</z:row>
  </ROW>
  <ROW>
   <z:row>8042423LL9301994- 09 -14T00: 00 :0010ON invoiceBU1032</z:row>
  </ROW>
  <ROW>
   <z:row>8042P7231993- 03 -11T00: 00 :0025Net 30BU1111</z:row>
  </ROW>
  <ROW>
   <z:row>8042QA879. 11993 - 05 -22T00: 00 :0030Net 30PC1035</z:row>
  </ROW>
 </ROWDATA>
</DATAPACKET>

Скрипт трансформирования
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Set objXML = CreateObject("Msxml2.DOMDocument")
Set xsl = Createobject("MSXML2.DOMDocument")
Set XML = Createobject("MSXML2.DOMDocument")
' Загружаем полученный XML
XML.Async = False
XML.load("C:\transform\ADO_pubs.xml")

' Загружаем схему преобразования для получения данных из XML
xsl.Async = False
xsl.load("C:\transform\ADONET2CDS.xsl")

' Проводим трансформацию и получаем нужный XML
transformXML = XML.transformNode(xsl)
objXML.loadXML(transformXML)
objXML.save("C:\transform\rezult.xml")

Set objXML = Nothing
Set xsl = Nothing
Set XML = Nothing

MsgBox(transformXML)


Вообщем не получается скопировать атрибуты с данными из исходного ADO-XML в результат.
У меня не получилось ни узнать имя атрибута, что-бы добавить его в результат, ни просто скопировать набор атрибутов со
значениями.
Или есть ещё какой-то путь преобразования?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Преобразование ADO-XML в ClientDataSet(CDS)-XML
    #37479049
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, хотелось-бы видеть результат без namespace'ов. Это можно сделать?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Преобразование ADO-XML в ClientDataSet(CDS)-XML
    #37479317
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос,

как-то так, откуда брать SUBTYPE для FIELDS не понятно.
что касается неймспейсов - от них не избавитесь, они к рутовой ноде прилипнут, забейте не мешают.
Код: 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.
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.
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl=" http://www.w3.org/1999/XSL/Transform" 
 xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
 xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
 xmlns:rs='urn:schemas-microsoft-com:rowset'
 xmlns:z='#RowsetSchema'
>
<xsl:output method="xml" encoding="windows-1251" omit-xml-declaration="no" indent="yes" media-type="text/xml"/>

 <xsl:template match="/">
 	<xsl:text disable-output-escaping="yes"><![CDATA[<plaintext>]]></xsl:text>
	<DATAPACKET Version="2.0">
		<METADATA>
			<FIELDS>
    			<xsl:apply-templates select="xml/s:Schema/s:ElementType/s:AttributeType" />
			</FIELDS>
			<PARAMS/>
		</METADATA>
		<ROWDATA>
			<xsl:apply-templates select="xml/rs:data/z:row" />
		</ROWDATA>
	</DATAPACKET>
</xsl:template>
<xsl:template match="s:AttributeType">
	<FIELD attrname="{@name}">
		<xsl:choose>
			<xsl:when test="s:datatype/@dt:type = 'string'">
				<xsl:attribute name="fieldtype">
					<xsl:value-of select="s:datatype/@dt:type" />
				</xsl:attribute>
				<xsl:attribute name="WIDTH">
					<xsl:value-of select="s:datatype/@dt:maxLength" />
				</xsl:attribute>
			</xsl:when>
			<xsl:when test="s:datatype/@dt:type = 'float'">
				<xsl:attribute name="fieldtype">
					<xsl:text>r8</xsl:text>
				</xsl:attribute>
			</xsl:when>
			<xsl:otherwise>
				<xsl:attribute name="fieldtype">
					<xsl:value-of select="s:datatype/@dt:type" />
				</xsl:attribute>
			</xsl:otherwise>
		</xsl:choose>
	</FIELD>
</xsl:template>
<xsl:template match="z:row">
	<ROW>
		<xsl:attribute name="ord_date">
			<xsl:value-of select="translate(substring-before( @ord_date, 'T' ), '-', '')" />
		</xsl:attribute>
		<xsl:copy-of select="@*[name()!='ord_date']" />
	</ROW>
</xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
Преобразование ADO-XML в ClientDataSet(CDS)-XML
    #37479325
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, эта строка
<xsl:text disable-output-escaping="yes"><![CDATA[<plaintext>]]></xsl:text>
не нужна, это мне лень трансформер поднимать, браузером тестировал
...
Рейтинг: 0 / 0
Преобразование ADO-XML в ClientDataSet(CDS)-XML
    #37479350
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: mage.lan

Спасибо, то что нужно. Теперь буду разбиратся.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Преобразование ADO-XML в ClientDataSet(CDS)-XML
    #37479780
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин! Только сейчас дошло, что сделал не то что нужно
Нужно было трансформировать ADO.NET'овский XML.
Завтра буду разбираться.

mage.lan

Я не совсем, точнее совсем не понял как работает этот шаблон:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<xsl:template match="z:row">
	<ROW>
		<xsl:attribute name="ord_date">
			<xsl:value-of select="translate(substring-before( @ord_date, 'T' ), '-', '')" />
		</xsl:attribute>
		<xsl:copy-of select="@*[name()!='ord_date']" />
	</ROW>
</xsl:template>
Можно его проговорить словами?
Спасибо
...
Рейтинг: 0 / 0
Преобразование ADO-XML в ClientDataSet(CDS)-XML
    #37479796
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос,

Словами? Хм.

Для z:row строим тег ROW, у которого атрибут ord_data вычисляется как строка до символа T, в которой все минусы заменяются на пустую строку. Остальные атрибуты копируются все, за исключением ord_data.

Какое место конкретно не понятно?
...
Рейтинг: 0 / 0
Преобразование ADO-XML в ClientDataSet(CDS)-XML
    #37481921
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, теперь понял! Меня смутило вычисление подстроки, и я не сразу обратил внимание на разное представление
даты-времени.

А вообще не совсем понятно конструирование template. Линейным перебором, как я делал изначально, как-то понятнее. А
создание шаблона не совсем понятно.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Преобразование ADO-XML в ClientDataSet(CDS)-XML
    #37482086
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос,

С этим всегда проблемы.

Дело в том, что трансформер "по умолчанию" обходит все теги XML и имеет собственные правила преобразования. Об этом почему-то все документации и преподаватели забывают сказать.

ИМХО, конструкция apply-templates + template - более читаемая, т.к. с for-each получаются безумные лесенки. По сути они одинаковы.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Преобразование ADO-XML в ClientDataSet(CDS)-XML
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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