使用XDocument类更新XML元素内容 [英] Updating XML elements content usign XDocument class
本文介绍了使用XDocument类更新XML元素内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
大家好,
创建文档后,我正在使用XDocument类更新值:
XDocument doc2 = XDocument.Parse( @" );
所以我需要更新经度"元素的内容,以便使用;
doc2.Element(" ).Element(" ).Value = " XXXXX";
我现在得到异常对象引用未设置为对象的实例"
我知道到达经度"元素存在问题,那么使我能够执行此操作的方法是什么,因为我尝试了很多次并进行了很多搜索..
非常感谢.
解决方案
尝试一下:
使用 System.Xml.Linq; 使用 System.Xml; 使用 System.Xml.XPath; XDocument doc2 = XDocument.Parse( @" http: www.opengis.net/kml/2.2" xmlns: gx ="http://www.google.com/kml/ext/2.2" xmlns:kml ="http://www.opengis.net/kml/2.2" xmlns:atom ="http://www.w3 .org/2005/Atom> <地标> < name> Test </ 名称 > < lookat> <经度> 11111111111 </ 经度 > < latitude> 1111111111111 </ latitude > < altitude> 500 </ 海拔高度 > < range> 500 </ range > < tilt> </ 倾斜 > 跨度> < heading> 11111111 </ 标题 > < altitudemode> relativeToGround </ altitudemode > </ 外观 > < styleurl>#msn_ylw-pushpin70 </ styleurl > < point> < coordinates> 111111111, 1111111111 </ 坐标 > </ 点 > </ 地标 > </ kml > " x ," http: www.opengis.net/kml/2.2"); var 经度= doc2.XPathSelectElement(" ,xnm); // var经度= doc2.XPathSelectElement("/x:kml/x:地标/x:LookAt/x:经度,xnm);这也有效! longitude.Value = " ;
>
Hi all,
I''m using the XDocument class to update the value after creating the document:
XDocument doc2 = XDocument.Parse(@"
<kml xmlns='http://www.opengis.net/kml/2.2' xmlns:gx='http://www.google.com/kml/ext/2.2' xmlns:kml='http://www.opengis.net/kml/2.2' xmlns:atom='http://www.w3.org/2005/Atom'>
<Placemark>
<name>Test</name>
<LookAt>
<longitude>11111111111</longitude>
<latitude>1111111111111</latitude>
<altitude>500</altitude>
<range>500</range>
<tilt></tilt>
<heading>11111111</heading>
<altitudeMode>relativeToGround</altitudeMode>
</LookAt>
<styleUrl>#msn_ylw-pushpin70</styleUrl>
<Point>
<coordinates>111111111,1111111111</coordinates>
</Point>
</Placemark>
</kml>");
So I need to update the "longitude" element content so I used;
doc2.Element("kml").Element("longitude").Value = "XXXXX";
I get now the exception "Object reference not set to an instance of an object"
I know that there is a problem reaching the "longitude" element so what is the method which enables me to do it, because I tried many times and searched a lot..
Many thanks.
解决方案
Try this :
using System.Xml.Linq; using System.Xml; using System.Xml.XPath; XDocument doc2 = XDocument.Parse(@" <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> <placemark> <name>Test</name> <lookat> <longitude>11111111111</longitude> <latitude>1111111111111</latitude> <altitude>500</altitude> <range>500</range> <tilt></tilt> <heading>11111111</heading> <altitudemode>relativeToGround</altitudemode> </lookat> <styleurl>#msn_ylw-pushpin70</styleurl> <point> <coordinates>111111111,1111111111</coordinates> </point> </placemark> </kml>"); XmlNamespaceManager xnm = new XmlNamespaceManager(new NameTable()); xnm.AddNamespace("x", "http://www.opengis.net/kml/2.2"); var longitude = doc2.XPathSelectElement("//x:longitude", xnm); //var longitude = doc2.XPathSelectElement("/x:kml/x:Placemark/x:LookAt/x:longitude", xnm); this also works! longitude.Value = "XXXXX";
这篇关于使用XDocument类更新XML元素内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文