XML DOM + IE5 + IIS + JavaScript

XML DOM + IE5 + IIS + JavaScript

Post by Emmanue » Wed, 09 Aug 2000 04:00:00



Bonjour,

J'utulise une fonction en JavaScript pour modifier un fichier XML.
Si je teste la fonction en local tout marche...
Par contre, travers un serveur web (IIS) j'obtient une erreur comme quoi
il est impossible de modifier un noeud en lecture seule.
J'ai modifi les paramtres du serveurs pour avoir les droits de lecture...

La seule astuce que j'ai trouv est de faire une alerte juste avant de faire
le setAttribute...

Si vous avez une autre ide et des explications??????

Merci.

Emmanuel

PS: Ci-joint le fichier HTML, le fichier XML et la feuille de style.

************
Java script
************
<html>
<body>
<script language="javascript">
function AjouterNoeud(Infonoeud, noeud, id)
      {
      var SourceDoc;
      var SourceStyle;
      var NodeList;
      var TopicElt ;

      SourceDoc = new ActiveXObject("Microsoft.XMLDOM");
      SourceDoc.load("helptopic.xml");
      if (SourceDoc.parseError.errorCode != 0)
            {
             document.write(SourceDoc.parseError.reason);
            }
      SourceStyle = new ActiveXObject("Microsoft.XMLDOM");
      SourceStyle.load("helptopic.xsl");
      if (SourceDoc.parseError.errorCode != 0)
            {
             document.write(SourceDoc.parseError.reason);
            }

      TopicElt = SourceDoc.createElement(noeud);
      if (window.error)
      {
      TopicElt.setAttribute("id",id);
      document.write("bonjour");
      }
      nodelist = SourceDoc.selectNodes(Infonoeud);
      for (i=0; i < nodelist.length; i++)
            {
                nodelist.item(i).appendChild(TopicElt);
            }

      Result = SourceDoc.transformNode(SourceStyle);

      if(!SourceStyle)
          {
              Result ="<HTML><BODY bgcolor=\"aliceblue\">Erreur dans votre
feuille de style</BODY></HTML>";
          }
      if(!SourceDoc)
          {
              Result ="<HTML><BODY bgcolor=\"aliceblue\">Erreur dans votre
source XML</BODY></HTML>";
          }
      document.write(Result);
      }
      }
</script>
<form name="form1">
 <p><br>Ajouter un noeud   </br></p>
 <input type="button" name="Noeud"   value="Noeud"
onclick="AjouterNoeud('helptopic', 'topic', '4');">
</form>
</body>
</html>

**************
Fichier XML
**************
<?xml version="1.0"?>
<?xml:stylesheet type="text/xsl" href="helptopic.xsl"?>
<helptopic>
    <topic id="1">
        <cours>
            <libelle>topic 1.1</libelle>
      <prix>100</prix>
  </cours>
  <cours>
      <libelle>topic 1.2</libelle>
      <prix>80</prix>
     </cours>
     <total monnaie="FR">180</total>
 </topic>
 <topic id="3">
        <cours>
            <libelle>topic 3.1</libelle>
      <prix>350</prix>
  </cours>
  <total monnaie="USD">350</total>
 </topic>
 <topic id="2">
        <cours>
            <libelle>topic 2.1</libelle>
      <prix>100</prix>
  </cours>
  <cours>
      <libelle>topic 2.2</libelle>
      <prix>80</prix>
     </cours>
     <cours>
      <libelle>topic 2.3</libelle>
      <prix>20</prix>
     </cours>
     <total monnaie="DEM">200</total>
 </topic>
</helptopic>

********************
Feuille XSL
********************
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
 <xsl:template match="/">
  <xsl:apply-templates/>
 </xsl:template>

 <xsl:template match="helptopic">
  <html>
         <head>
                <title>LES COURS</title>
      </head>
      <body>

          <p>

          <xsl:for-each select="cours">
               chapitre  : <xsl:value-of select="libelle"/><br/>
               <xsl:if test=".[prix >= 100]">
                            prix      : <xsl:value-of select="prix"/>
                                        <xsl:value-of

               </xsl:if>
               <xsl:if match=".[professeur!='']">
                            <xsl:value-of select='professeur'/><br/>
                        </xsl:if>
       </xsl:for-each>
       <xsl:if test=".[total != '']">
                    Total: <xsl:value-of select="total"/>

       </xsl:if>
       </p>
   </xsl:for-each>
      </body>
  </html>
 </xsl:template>
</xsl:stylesheet>

 
 
 

XML DOM + IE5 + IIS + JavaScript

Post by Emmanue » Wed, 09 Aug 2000 04:00:00


 Bonjour,

 J'utulise une fonction en JavaScript pour modifier un fichier XML.
 Si je teste la fonction en local tout marche...
 Par contre, travers un serveur web (IIS) j'obtient une erreur comme quoi
 il est impossible de modifier un noeud en lecture seule.
 J'ai modifi les paramtres du serveurs pour avoir les droits de lecture...

 La seule astuce que j'ai trouv est de faire une alerte juste avant de
faire
 le setAttribute...

 Si vous avez une autre ide et des explications??????

 Merci.

 Emmanuel

 PS: Ci-joint le fichier HTML, le fichier XML et la feuille de style.

 ************
 Java script
 ************
 <html>
 <body>
 <script language="javascript">
 function AjouterNoeud(Infonoeud, noeud, id)
       {
       var SourceDoc;
       var SourceStyle;
       var NodeList;
       var TopicElt ;

       SourceDoc = new ActiveXObject("Microsoft.XMLDOM");
       SourceDoc.load("helptopic.xml");
       if (SourceDoc.parseError.errorCode != 0)
             {
              document.write(SourceDoc.parseError.reason);
             }
       SourceStyle = new ActiveXObject("Microsoft.XMLDOM");
       SourceStyle.load("helptopic.xsl");
       if (SourceDoc.parseError.errorCode != 0)
             {
              document.write(SourceDoc.parseError.reason);
             }

       TopicElt = SourceDoc.createElement(noeud);
       TopicElt.setAttribute("id",id);

       nodelist = SourceDoc.selectNodes(Infonoeud);
       for (i=0; i < nodelist.length; i++)
             {
                 nodelist.item(i).appendChild(TopicElt);
             }

       Result = SourceDoc.transformNode(SourceStyle);

       if(!SourceStyle)
           {
               Result ="<HTML><BODY bgcolor=\"aliceblue\">Erreur dans votre
feuille de style</BODY></HTML>";
           }
       if(!SourceDoc)
           {
               Result ="<HTML><BODY bgcolor=\"aliceblue\">Erreur dans votre
source XML</BODY></HTML>";
           }
       document.write(Result);
       }
       }
 </script>
 <form name="form1">
  <p><br>Ajouter un noeud   </br></p>
  <input type="button" name="Noeud"   value="Noeud"
onclick="AjouterNoeud('helptopic', 'topic', '4');">
 </form>
 </body>
 </html>

 **************
 Fichier XML
 **************
 <?xml version="1.0"?>
 <?xml:stylesheet type="text/xsl" href="helptopic.xsl"?>
 <helptopic>
     <topic id="1">
         <cours>
             <libelle>topic 1.1</libelle>
       <prix>100</prix>
   </cours>
   <cours>
       <libelle>topic 1.2</libelle>
       <prix>80</prix>
      </cours>
      <total monnaie="FR">180</total>
  </topic>
  <topic id="3">
         <cours>
             <libelle>topic 3.1</libelle>
       <prix>350</prix>
   </cours>
   <total monnaie="USD">350</total>
  </topic>
  <topic id="2">
         <cours>
             <libelle>topic 2.1</libelle>
       <prix>100</prix>
   </cours>
   <cours>
       <libelle>topic 2.2</libelle>
       <prix>80</prix>
      </cours>
      <cours>
       <libelle>topic 2.3</libelle>
       <prix>20</prix>
      </cours>
      <total monnaie="DEM">200</total>
  </topic>
 </helptopic>

 ********************
 Feuille XSL
 ********************
 <?xml version="1.0"?>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  <xsl:template match="/">
   <xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="helptopic">
   <html>
          <head>
                 <title>LES COURS</title>
       </head>
       <body>

           <p>

           <xsl:for-each select="cours">
                chapitre  : <xsl:value-of select="libelle"/><br/>
                <xsl:if test=".[prix >= 100]">
                             prix      : <xsl:value-of select="prix"/>
                                         <xsl:value-of

                </xsl:if>
                <xsl:if match=".[professeur!='']">
                             <xsl:value-of select='professeur'/><br/>
                         </xsl:if>
        </xsl:for-each>
        <xsl:if test=".[total != '']">
                     Total: <xsl:value-of select="total"/>

        </xsl:if>
        </p>
    </xsl:for-each>
       </body>
   </html>
  </xsl:template>
 </xsl:stylesheet>

 
 
 

1. Browsing XML using IE5 and IIS

I have been attempting to send XML from an ASP page on IIS (actually
Personal Web Server on NT Workstation) to IE 5.0.  When I attempt to
open the XML file, however, IE5 just hangs.  I was hoping that someone
might have encountered similar problems or might have some suggestions.

The XML in question includes a reference to an XSL file for use in
displaying in the browser, and the problem only occurs with the XSL
reference included.  If I omit the style-sheet processing instrucion,
IE5 uses its default style-sheet without problems.  Also, if I send the
output as an attachment, save it to a file, and then open it, it works
fine, both with the style-sheet and without it.

Thanks,

Jonathan Moretz

Sent via Deja.com http://www.deja.com/
Before you buy.

2. Money 2001 sync

3. Error: JavaScript local or IIS

4. Findings of FACT in Antitrust Trail?

5. DSClient

6. version of MSXML from IE5 client on a IIS server ?

7. How do Iuse IR port on Nokia 8390 with my IPAQ? What software is available?

8. XML DOM and IIS - Using the 'Save' Method

9. javascript access to native XML in IE5+

10. How does xml xsl javascript and IE5 work together ?

11. Javascript XML transform script not working in IE5

12. writing xml to a new document with javascript (IE5)