XML

ofer_c33

New member
XML

יש לי קובץ XML כזה:
< ?xml version="1.0" encoding="utf-8"?> < urlset xmlns="http://www.google.com/schemas/sitemap/0.84"> < url> < loc>http://www.mysite.co.il....</loc> < lastmod>2007-01-08T11:01:58+02:00</lastmod> < changefreq>daily</changefreq> < /url> < /urlset>​
אני רוצה להוסיף לו עוד CHILD אז אני ניסיתי לעשות את זה :
XmlDocument doc = new XmlDocument(); XmlDocument docCCenter = new XmlDocument(); doc.Load(Server.MapPath("SiteMap1.xml")); XmlNode parentNode=doc.SelectSingleNode("//urlset"); XmlNode xNode ; xNode=parentNode.AppendChild(doc.CreateElement("url")); xNode.AppendChild(doc.CreateElement("loc")).InnerXml =sFullLink; xNode.AppendChild(doc.CreateElement("lastmod")).InnerXml ="12/12/200" xNode.AppendChild(doc.CreateElement("changefreq")).InnerXml ="daily";​
אבל הקוד נופל פה:
XmlNode parentNode=doc.SelectSingleNode("//urlset");​
ברור לי שזה בגלל
xmlns="http://www.google.com/schemas/sitemap/0.84"​
אבל השאלה איך אני עושה את זה מישהו יודע ויכול לעזור?
 

itaysk

New member
חפש על namespace manager

ממש ממש מזמן נתקלתי בזה אני חושב שצריך ליצור אובייקט כזה ויהעביר אותו ביחד עם שם הNODE
 
Nil ref error

ברוך הבא לעולם הנפלא של XML עם namespaces אתה צריך משהו דומה לזה:
XmlNamespaceManager nsMgr = new XmlNamespaceManager(doc.NameTable); doc.AddNamespace("g", "http://www.google.com/schemas/sitemap/0.84"); XmlNode parentNode=doc.SelectSingleNode("/g:urlset", nsMgr);​
קח בחשבון שיכול להיות שזה לא 100% מדויק, אבל זה הכיוון. ב XPATH אין Namespace כברירת מחדל, אתה חייב להעביר אותו חיצונית.
 
למעלה