У меня есть строка GML:
<gml:LineString><gml:coordinates>1537544.53,452064.2 1537541.719999999,452062.3099999999 1537523.159999999,452044.55 1537544.53,452064.2</gml:coordinates></gml:LineString>
Теперь я хочу преобразовать ее в документ XML
var t = "<gml:LineString>....</gml:LineString>";
XmlDocument doc = new XmlDocument();
var nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("gml", "http://www.opengis.net/gml");
doc.Load(t);
Но на doc.Load(t);
получено исключение:
System.Xml.XmlException: "Prefix "gml" undeclared."
Как добавить пространство имен и прочитать строку чтения?
ОБНОВЛЕНИЕ Я бы исправил код, основываясь на ответе @jdweng:
XmlReaderSettings settings = new XmlReaderSettings { NameTable = new NameTable() };
var nsmgr = new XmlNamespaceManager(settings.NameTable);
nsmgr.AddNamespace("gml", "http://www.opengis.net/gml");
XmlParserContext context = new XmlParserContext(null, nsmgr, "", XmlSpace.Default);
XmlReader reader = XmlReader.Create(new StringReader(gmlString), settings, context);
if (gmlString.StartsWith("<gml:Polygon>"))
{
XmlSerializer serializer = new XmlSerializer(typeof(PolygonType));
return new tGeoLPT { Item = (PolygonType)serializer.Deserialize(reader)
};
}