我正在尝试在名为Enterprise Architect ver 13.0.1310(编辑器:Sparx Systems)的产品中编写脚本(JavaScript)。 Enterprise Architect旨在管理UML模型。
Sparx Systems表示,Enterprise Architect具有内置的SpiderMonkey Javascript 1.8引擎。
但是,当我尝试执行parentNode.appendChild(childNode)
时,EA表示该函数appendChild()不存在。
有人知道如何使用SpiderMonkey 1.8处理XML DOM吗?
有人知道我该怎么做吗
SpiderMonkey 1.8中的appendChild(childnode)?也许另一个
功能?
在哪里可以找到参考和可用功能
SpiderMonkey 1.8吗?
您是否有一些脚本示例(JAVASCRIPT)为
SpiderMonkey 1.8吗?
最好的祝福
这是JScript(不是JavaScript)中在Enterprise Architect中无缝运行的代码:
// ==========================================
// GLOBAL DEFINITIONS
// ==========================================
var DIAGRAM_OT = 8;
var SEARCH_SPECIFICATION = "<ReportViewData>" +
"<Fields>" +
"<Field name=\"CLASSGUID\" />" +
"<Field name=\"CLASSTABLE\" />" +
"<Field name=\"CLASSTYPE\" />" +
"<Field name=\"ID\" />" +
"<Field name=\"Name\" />" +
"<Field name=\"Type\" />" +
"<Field name=\"Stéréotype\" />" +
"<Field name=\"Notes\" />" +
"<Field name=\"Source\" />" +
"<Field name=\"Type_Source\" />" +
"<Field name=\"Destination\" />" +
"<Field name=\"Type_Destination\" />" +
"<Field name=\"Direction\" />" +
"<Field name=\"Source Aggregation\" />" +
"<Field name=\"Source Cardinality\" />" +
"<Field name=\"Source Role\" />" +
"<Field name=\"Destination Aggregation\" />" +
"<Field name=\"Destination Cardinality\" />" +
"<Field name=\"Destination Role\" />" +
"</Fields>" +
"<Rows/>" +
"</ReportViewData>";
function ListDiagramConnectors() {
var treeSelectedType;
var theDiagram as EA.Diagram;
var xmlDOM;
/*
* Vérifie que la fenetre "System Output" (Console) est visible.
* Ouvre la fenetre "System Output" (Console) si nécessaire.
*/
Repository.EnsureOutputVisible( "Script" );
Session.Output( "JScript: List Diagram Relationships" );
Session.Output( "=========================================" );
treeSelectedType = Repository.GetTreeSelectedItemType();
switch ( treeSelectedType )
{
case DIAGRAM_OT:
{
theDiagram = Repository.GetTreeSelectedObject();
xmlDOM = creerEtRetournerXMLDOM();
Session.Output( "Working on diagram '" + theDiagram.Name + "' (Type=" +
theDiagram.Type + ", ID=" + theDiagram.DiagramID + ")" );
/* ***************************************************************************/
/* function XMLDOM.loadXML(String pXML) :
* Fonction JScript.
* charge un fichier XML fourni
* sous forme de String dans un XMLDOM.
* @pXML : String : contenu XML.
* @return : boolean : true si le chargement dans le DOM s'est bien déroulé.
*/
/* ***************************************************************************/
/* Charge la structure fournie dans la String
* SEARCH_SPECIFICATION dans le DOM XML xmlDOM. */
if( xmlDOM.loadXML(SEARCH_SPECIFICATION) )
{
/* Se positionne sur la racine des enregistrements ROWS dans le DOM. */
var nodeRows = xmlDOM.selectSingleNode( "//ReportViewData//Rows" );
/*
* Un connecteur a une relation un-a-plusieurs avec t_diagram.
* [t_connector] - [t_diagramlinks] - [t_diagram].
* Un connecteur peut apparaitre sur plusieurs diagrammes.
* L'objet DiagramLink représente une instance d'un connecteur sur un diagramme (lien).
* Un DIagramLink contient des propriétés comme la visibilité du connecteur, sa géométrie, ...
*/
// Récupère la EA.Collection de liens diagramLinks
// pour le diagramme sélectionné dans le Project Browser.
var diagramLinks as EA.Collection;
diagramLinks = theDiagram.DiagramLinks;
/* ************************************************** */
/* PARCOURS D'UNE EA.COLLECTION EN JScript : INDICE. */
/* ************************************************** */
for ( var i = 0 ; i < diagramLinks.Count ; i++ )
{
/* Récupère le lien EA.DiagramLink en cours. */
var currentLink as EA.DiagramLink;
currentLink = diagramLinks.GetAt( i );
/* Récupère le connecteur dans le lien. */
var correspondingConnector as EA.Connector;
correspondingConnector = Repository.GetConnectorByID( currentLink.ConnectorID );
/* Ajoute un enregistrement (ROW) correspondant au connecteur
* sous la balise Rows. */
AddRow(xmlDOM, nodeRows, correspondingConnector);
}
/* **************************************************************** */
/* Fonction EA RepositoryRunModelSearch( "", "", "", xmlDOM.xml ) : */
/* **************************************************************** */
/* Ouvre et Remplit la fenetre de Requete 'Find In Project'. */
Repository.RunModelSearch( "", "", "", xmlDOM.xml );
}
else
{
Session.Prompt( "Impossible de charger SEARCH_SPECIFICATION", 0 );
}
break;
}
default:
{
// Error message
Session.Prompt( "Ce script ne fonctionne que si vous sélectionnez un DIAGRAMME dans le Project Browser", 0 );
}
}
Session.Output( "FINI !" );
} // Fin de function ListDiagramConnectors().__________________________________________________________________
/*
* **********************************************************************************
* function creerEtRetournerXMLDOM() :
* CREATION D'UN XMLDOM en JScript. - new ActiveXObject( "MSXML2.DOMDocument.4.0" )
*
* @return : Document Object Model (DOM).
*/
function creerEtRetournerXMLDOM() {
var xmlDOM;
xmlDOM = new ActiveXObject( "MSXML2.DOMDocument.4.0" );
xmlDOM.validateOnParse = false;
xmlDOM.async = false;
return xmlDOM;
} // Fin de function creerEtRetournerXMLDOM()._________________________________________
/*
* *************************************************************************************
* function AddRow(pXmlDOM, pRacineEnregistrements, pConnector) :
* Ajoute un enregistrement (balise ROW) correspondant à un connecteur pConnector
* sous le noeud pRacineEnregistrements du DOM pXmlDOM.
*
* @pXmlDOM : DOM XML.
* @pRacineEnregistrements : node (balise) sous laquelle il faut insérer
* les enregistrements dans le DOM pXmlDOM.
* @pConnector : EA.Connector : Connecteur dont on veut ajouter
* les caractéristiques dans le DOM XML.
*/
function AddRow(pXmlDOM, pRacineEnregistrements, pConnector) {
/* Cast le paramètre pConnector pour bénéficier
* de la complétion (intellisense). */
var connector as EA.Connector;
connector = pConnector;
var row;
var source as EA.Element; /* Source du connecteur. */
var sourceEnd as EA.ConnectorEnd; /* ??? Semble contenir les propriétés (cardinalité, ...) du coté source du connecteur. */
var destination as EA.Element; /* Destination du connecteur. */
var destinationEnd as EA.ConnectorEnd; /* ??? Semble contenir les propriétés (cardinalité, ...) du coté destination du connecteur. */
var guid = ""; /* ConnectorGUID. */
var type = ""; /* Connector_Type. */
var id = ""; /* Connector_ID. */
var nom = ""; /* Nom du Connecteur. */
var stereotype = ""; /* Stéréotype du Connecteur. */
var notes = ""; /* Notes du Connecteur. */
var direction = ""; /* Direction du Connecteur; */
/* Crée un élément (balise) "ROW". */
/* FONCTION JScript createElement("Row"). */
row = pXmlDOM.createElement("Row");
/* Récupère les caractéristiques du connecteur. */
guid = connector.ConnectorGUID;
type = connector.MetaType;
nom = connector.Name;
id = connector.ConnectorID;
stereotype = connector.Stereotype;
notes = connector.Notes;
direction = connector.Direction;
/* Récupère les caractéristiques de la source du connecteur. */
source = Repository.GetElementByID( connector.ClientID );
sourceEnd = connector.ClientEnd;
/* Récupère les caractéristiques de la destination du connecteur. */
destination = Repository.GetElementByID( connector.SupplierID );
destinationEnd = connector.SupplierEnd;
/* *********************************************** */
/* CONSTITUTION D'UN ENREGISTREMENT (ROW). */
/* *********************************************** */
/* Ajoute toutes les caractéristiques du connecteur
* dans des balises sous un noeud ROW. */
AddField( pXmlDOM, row, "CLASSGUID", guid );
AddField( pXmlDOM, row, "CLASSTABLE", "t_connector" );
AddField( pXmlDOM, row, "CLASSTYPE", type );
AddField( pXmlDOM, row, "ID", id );
AddField( pXmlDOM, row, "Name", nom );
AddField( pXmlDOM, row, "Type", type );
AddField( pXmlDOM, row, "Stereotype", stereotype );
AddField( pXmlDOM, row, "Notes", notes );
AddField( pXmlDOM, row, "Source", source.Name );
AddField( pXmlDOM, row, "Type_Source", source.MetaType );
AddField( pXmlDOM, row, "Destination", destination.Name );
AddField( pXmlDOM, row, "Type_Destination", destination.MetaType );
AddField( pXmlDOM, row, "Direction", direction );
AddField( pXmlDOM, row, "Source Aggregation", sourceEnd.Aggregation );
AddField( pXmlDOM, row, "Source Cardinality", sourceEnd.Cardinality );
AddField( pXmlDOM, row, "Source Role", sourceEnd.Role );
AddField( pXmlDOM, row, "Destination Aggregation", destinationEnd.Aggregation );
AddField( pXmlDOM, row, "Destination Cardinality", destinationEnd.Cardinality );
AddField( pXmlDOM, row, "Destination Role", destinationEnd.Role );
/* Ajoute un noeud ROW sous la racine des enregistrements. */
pRacineEnregistrements.appendChild( row );
} // Fin de function AddRow(pXmlDOM, pRacineEnregistrements, pConnector).__________________________
/*
* **************************************************************************************************
* AJOUT D'UNE BALISE (ELEMENT) EN JScript.
* **************************************************************************************************
* function AddField(pXmlDOM, pRow, pNomDuChamp, pValeurDuChamp) :
* Ajoute un Element (balise) 'Field' à l'Element pRow d'un DOM pXmlDOM.
* Ajoute deux attributs 'name' et 'value' à l'Element 'Field ajouté.
* Fixe la valeur des attributs ajoutés à pNomDuChamp et pValeurDuChamp comme suit :
* <Field name="pNomDuChamp" value="pValeurDuChamp"/>.
* Par exemple :
* <Field name="Stereotype" value="Realization"/>.
*
* @pXmlDOM : Document Objet Model (DOM).
* @pRow : Node : Balise (Element) de pXmlDOM à laquelle on ajoute l'Element 'Field' créé.
* @pNomDuChamp : String : valeur à attribuer à l'attribut 'name' de l'Element 'Field' créé.
* @pValeurDuChamp : String : valeur à attribuer à l'attribut 'value' de l'Element 'Field' créé.
*/
function AddField(pXmlDOM, pRow, pNomDuChamp, pValeurDuChamp) {
/* Crée une balise (Element) 'Field'. */
var fieldNode = pXmlDOM.createElement("Field");
/* Crée un premier attribut 'name'. */
var nameAttribute = pXmlDOM.createAttribute("name");
/* passe la valeur pNomDuChamp à l'attribut 'name'. */
nameAttribute.value = pNomDuChamp;
/* Ajoute l'attribut valué 'name' à la collection d'attributs de la balise 'Field'. */
fieldNode.attributes.setNamedItem(nameAttribute);
/* Crée un second attribut 'value'. */
var valueAttribute = pXmlDOM.createAttribute("value");
/* passe la valeur pValeurDuChamp à l'attribut 'value'. */
valueAttribute.value = pValeurDuChamp;
/* Ajoute l'attribut valué 'value' à la collection d'attributs de la balise 'Field'. */
fieldNode.attributes.setNamedItem(valueAttribute);
/* Ajoute la balise 'Field' nouvellement créée comme enfant de pRow. */
pRow.appendChild( fieldNode );
} // Fin de function AddField(pXmlDOM, pRow, pNomDuChamp, pValeurDuChamp)._________________
ListDiagramConnectors();
</code>
这是相同脚本的代码,但使用JavaScript。由于未定义函数appendChild(childNode),因此该代码无法在Enterprise Architect 13.0.1310中运行:
<code>
// ==========================================
// GLOBAL DEFINITIONS
// ==========================================
/* Object_type d'un Diagram == 8 dans EA. */
var DIAGRAM_OT = 8;
/* String XML qui définit les champs qui apparaitront
* dans la fenetre 'Find In Project'
* et la forme d'un fichier XML correspondant à une requete Search. */
var SEARCH_SPECIFICATION = "<ReportViewData>" +
"<Fields>" +
"<Field name=\"CLASSGUID\" />" +
"<Field name=\"CLASSTABLE\" />" +
"<Field name=\"CLASSTYPE\" />" +
"<Field name=\"ID\" />" +
"<Field name=\"Name\" />" +
"<Field name=\"Type\" />" +
"<Field name=\"Stéréotype\" />" +
"<Field name=\"Notes\" />" +
"<Field name=\"Source\" />" +
"<Field name=\"Type_Source\" />" +
"<Field name=\"Destination\" />" +
"<Field name=\"Type_Destination\" />" +
"<Field name=\"Direction\" />" +
"<Field name=\"Source Aggregation\" />" +
"<Field name=\"Source Cardinality\" />" +
"<Field name=\"Source Role\" />" +
"<Field name=\"Destination Aggregation\" />" +
"<Field name=\"Destination Cardinality\" />" +
"<Field name=\"Destination Role\" />" +
"</Fields>" +
"<Rows/>" +
"</ReportViewData>";
/*
* ***************************************************************************************************
* function ListDiagramConnectors() :
* Main function.
* Liste l'ensemble des connecteurs présents dans un diagramme sélectionné dans le Project Browser.
* Le résultat est affiché dans la fenetre de Requete 'Find In Project'.
* Cette fenetre 'Find In Project' s'ouvre automatiquement.
*/
function ListDiagramConnectors() {
var treeSelectedType;
var theDiagram as EA.Diagram;
var xmlDOM;
/*
* Vérifie que la fenetre "System Output" (Console) est visible.
* Ouvre la fenetre "System Output" (Console) si nécessaire.
*/
Repository.EnsureOutputVisible( "Script" );
Session.Output( "JScript: List Diagram Relationships" );
Session.Output( "=========================================" );
/* ********************************************************************** */
/* RECUPERATION DU TYPE DE L'OBJET SELECTIONNE DANS LE PROJECT BROWSER. */
/* FONCTION EA13 Repository.GetTreeSelectedItemType(). */
/* ********************************************************************** */
/* Récupère le type de l'objet sélectionné dans le Project Browser. */
/* Ce type est un entier. */
treeSelectedType = Repository.GetTreeSelectedItemType();
/* ********************************* */
/* SELECT CASE en JScript. */
/* ********************************* */
/* Traitement du type d'objet sélectionné dans le Project Browser. */
switch ( treeSelectedType )
{
/* Lorsqu'un diagramme est selectionné dans le ProjectBrowser. */
case DIAGRAM_OT:
{
/* Récupération de l'objet sélectionné dans le Project Browser. */
theDiagram = Repository.GetTreeSelectedObject();
/* Récupère un Document Object Model (DOM). */
xmlDOM = creerEtRetournerXMLDOM();
Session.Output( "Working on diagram '" + theDiagram.Name + "' (Type=" +
theDiagram.Type + ", ID=" + theDiagram.DiagramID + ")" );
/* ***************************************************************************/
/* function XMLDOM.loadXML(String pXML) :
* Fonction JScript.
* charge un fichier XML fourni
* sous forme de String dans un XMLDOM.
* @pXML : String : contenu XML.
* @return : boolean : true si le chargement dans le DOM s'est bien déroulé.
*/
/* ***************************************************************************/
/* Charge la structure fournie dans la String
* SEARCH_SPECIFICATION dans le DOM XML xmlDOM. */
if( xmlDOM.loadXML(SEARCH_SPECIFICATION) )
{
/* Se positionne sur la racine des enregistrements ROWS dans le DOM. */
var nodeRows = xmlDOM.selectSingleNode( "//ReportViewData//Rows" );
/*
* Un connecteur a une relation un-a-plusieurs avec t_diagram.
* [t_connector] - [t_diagramlinks] - [t_diagram].
* Un connecteur peut apparaitre sur plusieurs diagrammes.
* L'objet DiagramLink représente une instance d'un connecteur sur un diagramme (lien).
* Un DIagramLink contient des propriétés comme la visibilité du connecteur, sa géométrie, ...
*/
// Récupère la EA.Collection de liens diagramLinks
// pour le diagramme sélectionné dans le Project Browser.
var diagramLinks as EA.Collection;
diagramLinks = theDiagram.DiagramLinks;
/* ************************************************** */
/* PARCOURS D'UNE EA.COLLECTION EN JScript : INDICE. */
/* ************************************************** */
for ( var i = 0 ; i < diagramLinks.Count ; i++ )
{
/* Récupère le lien EA.DiagramLink en cours. */
var currentLink as EA.DiagramLink;
currentLink = diagramLinks.GetAt( i );
/* Récupère le connecteur dans le lien. */
var correspondingConnector as EA.Connector;
correspondingConnector = Repository.GetConnectorByID( currentLink.ConnectorID );
/* Ajoute un enregistrement (ROW) correspondant au connecteur
* sous la balise Rows. */
AddRow(xmlDOM, nodeRows, correspondingConnector);
}
/* **************************************************************** */
/* Fonction EA RepositoryRunModelSearch( "", "", "", xmlDOM.xml ) : */
/* **************************************************************** */
/* Ouvre et Remplit la fenetre de Requete 'Find In Project'. */
Repository.RunModelSearch( "", "", "", xmlDOM.xml );
}
else
{
Session.Prompt( "Impossible de charger SEARCH_SPECIFICATION", 0 );
}
break;
}
default:
{
// Error message
Session.Prompt( "Ce script ne fonctionne que si vous sélectionnez un DIAGRAMME dans le Project Browser", 0 );
}
}
Session.Output( "FINI !" );
} // Fin de function ListDiagramConnectors().__________________________________________________________________
/*
* **********************************************************************************
* function creerEtRetournerXMLDOM() :
* CREATION D'UN XMLDOM en JavaScript. - new COMObject( "MSXML2.DOMDocument" )
*
* @return : Document Object Model (DOM).
*/
function creerEtRetournerXMLDOM() {
var xmlDOM;
xmlDOM = new COMObject( "MSXML2.DOMDocument" );
xmlDOM.validateOnParse = false;
xmlDOM.async = false;
return xmlDOM;
} // Fin de function creerEtRetournerXMLDOM()._________________________________________
/*
* *************************************************************************************
* function AddRow(pXmlDOM, pRacineEnregistrements, pConnector) :
* Ajoute un enregistrement (balise ROW) correspondant à un connecteur pConnector
* sous le noeud pRacineEnregistrements du DOM pXmlDOM.
*
* @pXmlDOM : DOM XML.
* @pRacineEnregistrements : node (balise) sous laquelle il faut insérer
* les enregistrements dans le DOM pXmlDOM.
* @pConnector : EA.Connector : Connecteur dont on veut ajouter
* les caractéristiques dans le DOM XML.
*/
function AddRow(pXmlDOM, pRacineEnregistrements, pConnector) {
/* Cast le paramètre pConnector pour bénéficier
* de la complétion (intellisense). */
var connector as EA.Connector;
connector = pConnector;
var row;
var source as EA.Element; /* Source du connecteur. */
var sourceEnd as EA.ConnectorEnd; /* ??? Semble contenir les propriétés (cardinalité, ...) du coté source du connecteur. */
var destination as EA.Element; /* Destination du connecteur. */
var destinationEnd as EA.ConnectorEnd; /* ??? Semble contenir les propriétés (cardinalité, ...) du coté destination du connecteur. */
var guid = ""; /* ConnectorGUID. */
var type = ""; /* Connector_Type. */
var id = ""; /* Connector_ID. */
var nom = ""; /* Nom du Connecteur. */
var stereotype = ""; /* Stéréotype du Connecteur. */
var notes = ""; /* Notes du Connecteur. */
var direction = ""; /* Direction du Connecteur; */
/* Crée un élément (balise) "ROW". */
/* FONCTION JavaScript createElement("Row"). */
row = pXmlDOM.createElement("Row");
/* Récupère les caractéristiques du connecteur. */
guid = connector.ConnectorGUID;
type = connector.MetaType;
nom = connector.Name;
id = connector.ConnectorID;
stereotype = connector.Stereotype;
notes = connector.Notes;
direction = connector.Direction;
/* Récupère les caractéristiques de la source du connecteur. */
source = Repository.GetElementByID( connector.ClientID );
sourceEnd = connector.ClientEnd;
/* Récupère les caractéristiques de la destination du connecteur. */
destination = Repository.GetElementByID( connector.SupplierID );
destinationEnd = connector.SupplierEnd;
/* *********************************************** */
/* CONSTITUTION D'UN ENREGISTREMENT (ROW). */
/* *********************************************** */
/* Ajoute toutes les caractéristiques du connecteur
* dans des balises sous un noeud ROW. */
AddField( pXmlDOM, row, "CLASSGUID", guid );
AddField( pXmlDOM, row, "CLASSTABLE", "t_connector" );
AddField( pXmlDOM, row, "CLASSTYPE", type );
AddField( pXmlDOM, row, "ID", id );
AddField( pXmlDOM, row, "Name", nom );
AddField( pXmlDOM, row, "Type", type );
AddField( pXmlDOM, row, "Stereotype", stereotype );
AddField( pXmlDOM, row, "Notes", notes );
AddField( pXmlDOM, row, "Source", source.Name );
AddField( pXmlDOM, row, "Type_Source", source.MetaType );
AddField( pXmlDOM, row, "Destination", destination.Name );
AddField( pXmlDOM, row, "Type_Destination", destination.MetaType );
AddField( pXmlDOM, row, "Direction", direction );
AddField( pXmlDOM, row, "Source Aggregation", sourceEnd.Aggregation );
AddField( pXmlDOM, row, "Source Cardinality", sourceEnd.Cardinality );
AddField( pXmlDOM, row, "Source Role", sourceEnd.Role );
AddField( pXmlDOM, row, "Destination Aggregation", destinationEnd.Aggregation );
AddField( pXmlDOM, row, "Destination Cardinality", destinationEnd.Cardinality );
AddField( pXmlDOM, row, "Destination Role", destinationEnd.Role );
/* Ajoute un noeud ROW sous la racine des enregistrements. */
/* ************************************* */
/* NE FONCTIONNE PAS EN JavaScript; !!!! */
/* ************************************* */
pRacineEnregistrements.appendChild( row );
} // Fin de function AddRow(pXmlDOM, pRacineEnregistrements, pConnector).__________________________
/*
* **************************************************************************************************
* AJOUT D'UNE BALISE (ELEMENT) EN JavaScript.
* **************************************************************************************************
* function AddField(pXmlDOM, pRow, pNomDuChamp, pValeurDuChamp) :
* Ajoute un Element (balise) 'Field' à l'Element pRow d'un DOM pXmlDOM.
* Ajoute deux attributs 'name' et 'value' à l'Element 'Field ajouté.
* Fixe la valeur des attributs ajoutés à pNomDuChamp et pValeurDuChamp comme suit :
* <Field name="pNomDuChamp" value="pValeurDuChamp"/>.
* Par exemple :
* <Field name="Stereotype" value="Realization"/>.
*
* @pXmlDOM : Document Objet Model (DOM).
* @pRow : Node : Balise (Element) de pXmlDOM à laquelle on ajoute l'Element 'Field' créé.
* @pNomDuChamp : String : valeur à attribuer à l'attribut 'name' de l'Element 'Field' créé.
* @pValeurDuChamp : String : valeur à attribuer à l'attribut 'value' de l'Element 'Field' créé.
*/
function AddField(pXmlDOM, pRow, pNomDuChamp, pValeurDuChamp) {
/* Crée une balise (Element) 'Field'. */
var fieldNode = pXmlDOM.createElement("Field");
/* Crée un premier attribut 'name' et lui passe sa valeur pNomDuChamp. */
fieldNode.setAttribute("name", pNomDuChamp);
/* Crée un second attribut 'value' et lui passe sa valeur pValeurDuChamp. */
fieldNode.setAttribute("value", pValeurDuChamp);
/* Ajoute la balise 'Field' nouvellement créée comme enfant de pRow. */
/* ************************************* */
/* NE FONCTIONNE PAS EN JavaScript; !!!! */
/* ************************************* */
pRow.appendChild(fieldNode);
} // Fin de function AddField(pXmlDOM, pRow, pNomDuChamp, pValeurDuChamp)._________________
ListDiagramConnectors();
</code>
最佳答案
有人知道如何使用SpiderMonkey 1.8处理XML DOM吗?
据我所知,Spidermonkey不具备此功能,因为它是为没有DOM的应用程序开发的
在哪里可以找到参考和可用功能
SpiderMonkey 1.8吗?
您是否有一些为SpiderMonkey 1.8编写的脚本(JAVASCRIPT)示例?
因此,基本上,SpiderMonkey与JavaScript相同,但减去DOM Manipulation(和XML)
有人知道我如何做与SpiderMonkey 1.8中的appendChild(childnode)相同的事情吗?也许另一个功能?
您将需要使用VBscript或Jscript(Jscript是Javascript的Microsoft实现)。
Here's an example Jscript
main();
function main()
{
var dom = MakeDOM(null);
try {
// Create a processing instruction targeted for xml.
var node = dom.createProcessingInstruction("xml",
"version='1.0'");
dom.appendChild(node);
node = null;
...
ea客户端的EAScriptLib组中有一个库