powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / трабл с transformNode & XSL.
6 сообщений из 6, страница 1 из 1
трабл с transformNode & XSL.
    #34257528
Vladimir Kovalevskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть Javascript вида:
Код: 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.
  	  function test_click()
          {
         	//init xmlhttp
                var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

                var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
                var xslDoc = new ActiveXObject("Msxml2.DOMDocument.3.0");

                //response proceeding
                xmlhttp.onreadystatechange = function(){
                 if (xmlhttp.readyState ==  4 )
                 {
                  //get the return envelope
                  xmlDoc.async = false;
                  xmlDoc.load(xmlhttp.responseXml);
                  if (xmlDoc.parseError.errorCode !=  0 )
                  {
                   alert(xmlDoc.parseError.reason);
                  }
                  else
                  {
		   xslDoc.async = false;
                   xslDoc.load("soap.xsl");
		   if (xslDoc.parseError.errorCode !=  0 )
                   {
                    alert(xslDoc.parseError.reason);
                   }
                   else
                   {
                    document.all.output.innerHTML = xmlDoc.transformNode(xslDoc);
                    alert(document.all.output.innerHTML);
                   }
                  }
                 }
                }

                //load params

                var s_soap_params =     "<?xml version=\"1. 0 \" encoding=\"utf- 8 \"?>\n"
                                        +"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/ 2001 /XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/ 2001 /XMLSchema\">\n"
                                        +"<soap:Body>\n"
                                        +"<GetEcoClass xmlns=\"http://tempuri.org/\">\n"
                                        +"<args>\n"
                                        +"<TypeName>NFS_FinanceCoreUnit.Folders</TypeName>\n"
                                        +"<PropertyName>RootId</PropertyName>\n"
                                        +"<PropertyValue>child</PropertyValue>\n"
                                        +"<Format>\n"
                                        +"<PropertyDelemitier>0</PropertyDelemitier>\n"
                                        +"<RequestedProperties>ucName</RequestedProperties>\n"
                                        +"<RootedId>50:7996</RootedId>\n"
                                        +"</Format>\n"
                                        +"</args>\n"
                                        +"</GetEcoClass>\n"
                                        +"</soap:Body>\n"
                                        +"</soap:Envelope>\n";


	     	xmlhttp.open("POST", "http://nek-slv-kovalevskiy/core_srv/eco_class_provider.asmx" , true);
                xmlhttp.setRequestHeader("Host","nek-slv-kovalevskiy");
                xmlhttp.setRequestHeader("Content-Type","text/xml; charset=utf-8");
                xmlhttp.setRequestHeader("SOAPAction","http://tempuri.org/GetEcoClass");
                xmlhttp.send(s_soap_params);
         }

и xsl

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
  <xsl:template match = "Envelope/Body/GetEcoClassResponse/GetEcoClassResult">
        <table border="1">
	<xsl:for-each select="Staff/EcoClassData">
        <tr>
          <td>ID :</td>
	  <td><xsl:value-of select="ID"/></td>
          <td>Текст :</td>
	  <td><xsl:value-of select="Text"/></td>
          <td>Дата :</td>
	  <td><xsl:value-of select="Data"/></td>
        </tr>
        </xsl:for-each>
        </table>
  </xsl:template>
</xsl:stylesheet>

дело в том, что transformNode всегда возвращает xmlDoc.text т.е. текст из xml полученного xml.
Не понимаю в чём трабл.
...
Рейтинг: 0 / 0
трабл с transformNode & XSL.
    #34257767
Vladimir Kovalevskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это xml который приходит с сревера и котрый я пытаюсь разобрать с помощью вышепреведённого XSL:
Код: 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.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
 <GetEcoClassResponse xmlns="http://tempuri.org/">
   <GetEcoClassResult>
     <TypeName>NFS_FinanceCoreUnit.Folders</TypeName>
     <Staff>
       <EcoClassData>
         <ID> 50 : 7997 </ID>
         <Text>Статьи бюджета</Text>
         <Data>no data</Data>
       </EcoClassData>
       <EcoClassData>
         <ID> 50 : 7998 </ID>
         <Text>Типы бюджета</Text>
         <Data>no data</Data>
       </EcoClassData>
       <EcoClassData>
         <ID> 50 : 8001 </ID>
         <Text>Бюджетные операции</Text>
         <Data>no data</Data>
       </EcoClassData>
     </Staff>
   </GetEcoClassResult>
  </GetEcoClassResponse>
</soap:Body>
</soap:Envelope>
...
Рейтинг: 0 / 0
трабл с transformNode & XSL.
    #34258364
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
префикс пространства имён soap не указал
...
Рейтинг: 0 / 0
трабл с transformNode & XSL.
    #34258372
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и tempuri.org тоже. Курить доки по пространствам имён в хмл
...
Рейтинг: 0 / 0
трабл с transformNode & XSL.
    #34258784
Vladimir Kovalevskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вкурил, написал следующее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
xmlns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<xsl:output method="html"/>
  <xsl:template match = "/">
        <table border="1">
        <tr>
          <td><b>ID</b></td>
          <td><b>Текст</b></td>
          <td><b>Дата</b></td>
        </tr>
	<xsl:for-each select="soap:Envelope/soap:Body/GetEcoClassResponse/GetEcoClassResult/Staff/EcoClassData">
        <tr>
	  <td><xsl:value-of select="ID"/></td>
	  <td><xsl:value-of select="Text"/></td>
	  <td><xsl:value-of select="Data"/></td>
        </tr>
        </xsl:for-each>
        </table>
  </xsl:template>
</xsl:stylesheet>


пусто, оба xmlns появились как аттрибуту тега table
...
Рейтинг: 0 / 0
трабл с transformNode & XSL.
    #34259353
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
xmlDoc.load(xmlhttp.responseXml);
хмм… responseXml уже имеет тип DomDocument, по идее, его не надо загружать.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / трабл с transformNode & XSL.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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