Avatar billede kla Nybegynder
30. juni 2003 - 09:57 Der er 1 løsning

Fra text til xml dom i JS

Jeg har et problem vedr. noget JS / XML / TEXT

function opretXMLID (se JS fil)

Jeg vil gerne kunne sende nogle tags ud til et hidden field

som jeg så gerne vil have et DOM'obj ud af ved kald "test2 = new XMLHandle(document.all['bexmlin']);" som selv kalder opretXMLID...

Det går sådan set også fint nok... men benytter jeg følgende :
    newElement = oXML.createElement(id);
    newElement.text = value;

i dette tilfælde bliver alle '<' & '>' lavet om til '&lt;' & '&gt;' hvilket jeg ikke kan brug til så meget...

Nogen som har et foreslag til hvordan man omsætter nogle tag til noget gyldigt XML man kan arbejde på ????

/KLA

################ HTML fil #####################
<html>
<head>

<SCRIPT src="besystem/XMLHandler.js"></SCRIPT>
<script>

function init()
{
  try {

    test2 = new XMLHandle(document.all['bexmlin']);
    testX = new XMLHandle(document.all['bexmlin2']);
   
    test2.addTag('benr','001');
    test2.showXML();   

    test2.getTag('benr');
    test2.getTag('benr2');

  }
  catch(e) {alert(e)}
}

</script>
</head>
<XML id="oXML"><Root></Root></XML>

<body onload="init();">

<input type="hidden" name="xmlin" value="">
<input type="hidden" name="xmlin2" value="<benr>003</benr>">
</body>
</html>

################ HTML fil #####################

################ JS fil #####################
function XMLHandle(xmlObj)
{
  this.xmlObj    = xmlObj;
 
  this.addTag    = addTag;
  this.removeTag = removeTag;
  this.setTag    = setTag;
  this.getTag    = getTag;
  this.showXML  = showXML;
 
  this.strXpath = "//Root/" + this.xmlObj.name;
 
  opretXMLID(xmlObj.name,xmlObj.value)
}

function addTag(tagName, tagValue)
{
  if (tagName == null || tagValue == null) throw ('001 tagname og eller tagvalue - mangler');

  var newElement;
 
  try
  {
    oNode = oXML.selectSingleNode(this.strXpath);
    newElement = oXML.createElement(tagName);
    newElement.text = tagValue;
    oNode.appendChild(newElement);
  }
  catch(ex) { throw ('010 Mangler instans af XMLHandle'); }
   
}

function removeTag(tagName)
{
  if (tagName == null) throw ('001 tagname - mangler');
}

function getTag(tagName)
{
  if (tagName == null) throw ('001 tagname - mangler');
   
  oNode = oXML.selectSingleNode(this.strXpath + "/" + tagName);     
 
  if (oNode == null) throw ('001 Tag findes ikke');
 
    alert(oNode.text);
    return oNode.text;
}

function setTag(tagName,tagValue)
{
  if (tagName == null || tagValue == null) throw ('001 tagname og eller tagvalue - mangler');
}

function showXML()

    oNode = oXML.selectSingleNode(this.strXpath);
 
    alert(oNode.xml);
 
    alert(oXML.xml);    
}

function opretXMLID(id,value)
{

alert ('jubii');
  var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
  xmlDoc.async="false"
  xmlDoc.load(value)

alert(xmlDoc.xml);

  //document.location(xmlDoc.documentElement.childNodes.item(0).text)
/*
    newElement = oXML.createElement(id);
    newElement.text = value;
    alert(newElement.xml);
    oXML.documentElement.appendChild(newElement);

  */
}
Avatar billede kla Nybegynder
30. juni 2003 - 14:01 #1
Problemet kan løses ved at benytte sig af xmlDoc.loadXML(value) istedet for xmlDoc.load(value) :-) måske en anden kunne brug den information :-)
/kla - lukker og slukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester