codetoad.com
  ASP Shopping CartForum & BBS
  - all for $20 from CodeToad Plus!
  
  Home || ASP | ASP.Net | C++/C# | DHTML | HTML | Java | Javascript | Perl | VB | XML || CodeToad Plus! || Forums || RAM 
Search Site:
Search Forums:
  XML with child-parent relations  Sandra2005 at 21:33 on Thursday, July 28, 2005
 

I have trouble with adding a new node <Path> that consists of <CategoryID> itself element and it ansectors

I have input XML file:
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Category>
<CategoryID>1</CategoryID>
<ParentCategoryID>0</ParentCategoryID>
<CategoryDesc>Desc of Category 1</CategoryDesc>
<CategoryText>Text of Category 1</CategoryText>
</Category>
<Category>
<CategoryID>2</CategoryID>
<ParentCategoryID>1</ParentCategoryID>
<CategoryDesc>Desc of Category 2</CategoryDesc>
<CategoryText>Text of Category 2</CategoryText>
</Category>
<Category>
<CategoryID>3</CategoryID>
<ParentCategoryID>2</ParentCategoryID>
<CategoryDesc>Desc of Category 3</CategoryDesc>
<CategoryText>Text of Category 3</CategoryText>
</Category>
</Document>

Ouput XML looks like that:
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Category>
<CategoryID>1</CategoryID>
<ParentCategoryID>0</ParentCategoryID>
<CategoryDesc>Desc of Category 1</CategoryDesc>
<CategoryText>Text of Category 1</CategoryText>
<Path>1</Path>
</Category>
<Category>
<CategoryID>2</CategoryID>
<ParentCategoryID>1</ParentCategoryID>
<CategoryDesc>Desc of Category 2</CategoryDesc>
<CategoryText>Text of Category 2</CategoryText>
<Path>2/1</Path>
</Category>
<Category>
<CategoryID>3</CategoryID>
<ParentCategoryID>2</ParentCategoryID>
<CategoryDesc>Desc of Category 3</CategoryDesc>
<CategoryText>Text of Category 3</CategoryText>
<Path>3/2/1</Path>
</Category>
</Document>
------------
After adding a new node i've follow error:
----------
public class _default : System.Web.UI.Page
{
private XmlDocument XMLDoc;
private string XMLFile = "/forum/XMlFileName.xml";


private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
XMLDoc = new XmlDocument();
RenderXML();
}
}

--------
public void RenderXML()
{
string strInnerText = string.Empty;
string strParentPath = string.Empty;

XmlTextReader reader = new XmlTextReader(Server.MapPath(XMLFile));
XMLDoc.Load(reader);
reader.Close();
XmlNodeList nodes = XMLDoc.DocumentElement.GetElementsByTagName("Category");
foreach(XmlNode node in NodesList)
{
strInnerText = node.SelectSingleNode("ParentCategoryID").InnerText;
if(Parse.Int(strInnerText) == 0)
{
XmlNode NewNode = this.XMLDoc.CreateNode(XmlNodeType.Element, "Path", "");
NewNode.InnerText = node.SelectSingleNode("CategoryID").InnerText;
node.AppendChild(NewNode);
}//if

}//foreach
}

System.ArgumentException: The node to be inserted is from a different document context.
Stack Trace:
[ArgumentException: The node to be inserted is from a different document context.]
System.Xml.XmlNode.AppendChild(XmlNode newChild) +575
PCAT._default.RenderXML() in c:\inetpub\wwwroot\Project12\default.aspx.cs:67
PCAT._default.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\pcat\default.aspx.cs:30
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Page.ProcessRequestMain() +731
------------
All advices will be appreciated!!! Thanks








CodeToad Experts

Can't find the answer?
Our Site experts are answering questions for free in the CodeToad forums
//








Recent Forum Threads
•  Re: Pcl file
•  Re: Text wrapping on C# webforms buttons
•  DIV IFRAME simulation
•  Onclick does not work using input type = "button"
•  Animation works on IE but not on Firefox
•  Re: Add an OnChange event to an ASP page
•  Re: combined 3 functions that do the same thing
•  Button link to excel
•  parser project needs c++ programmer


Recent Articles
ASP GetTempName
Decode and Encode UTF-8
ASP GetFile
ASP FolderExists
ASP FileExists
ASP OpenTextFile
ASP FilesystemObject
ASP CreateFolder
ASP CreateTextFile
Javascript Get Selected Text


© Copyright codetoad.com 2001-2009