Добрый день! Есть массив, который при выборе примитивов, у которых есть расширенные данные, получает эти расширенные данные в виде xml формата (xml указана для одного примитива):
(1,<Trench>
<Name>Т-3</Name>
<ObjectType>trench</ObjectType>
<Number>ТК-1</Number>
<Length_redef>0</Length_redef>
<UseRedefLength>false</UseRedefLength>
<Width>0.4</Width>
<Depth>0.9</Depth>
<SandLlayer>0.3</SandLlayer>
<TiltAngle>0</TiltAngle>
<IsStandard>true</IsStandard>
<Parts />
<Parts_1m>
<Part name="Кирпич красный полнотелый, ГОСТ 530–2012" quantity="8.34" sendInSpecification="True" comment="" />
<Part name="ААБл 3х240-10" quantity="2" sendInSpecification="True" comment="" />
</Parts_1m>
</Trench>)
Далее надо написать, код, который позволит получать значения тегов, например: <Name>Т-3</Name> считываем в переменную string "Т-3", <Number>ТК-1</Number> считываем в переменную string "ТК-1" и так далее.
Что нужно дальше написать, чтобы выполнить задуманное. Подскажите пожалуйста. Перепробывал кучу вариантов через свойства Xelement, выводит только надпись "Trench" в командной строке Autocad, либо фатальная ошибка.
Вот код:
if (surId != ObjectId.Null)
{
DBDictionary dbExt = (DBDictionary)tr.GetObject(surId, OpenMode.ForRead);
foreach (DBDictionaryEntry ent in dbExt)
{
ObjectId dId = dbExt.GetAt("ESMT_LEP_v1.0");
Xrecord xr = (Xrecord)tr.GetObject(dId, OpenMode.ForRead);
TypedValue[] arr = xr.Data.AsArray();
for (int i = 0; i < arr.Length; i++)
{
XElement xml_att = XElement.Parse((string)arr[i].Value);
//string name = xml_att.Name;
//ed.WriteMessage("\n тег"+ name);
...
...
...
}
}
}