Используя Присоединение Visual Studio
, Это сообщает подробности о каждом блоке, домене приложения и имеет несколько опций загрузить символы (т.е. pdb файлы, которые содержат отладочную информацию).
Используя Проводник Процесса
, Если Вы хотите внешний инструмент, можно использовать , Проводник Процесса (бесплатное программное обеспечение, опубликованное Microsoft)
, Нажимает на процесс, и это покажет список со всеми используемыми блоками. Инструмент довольно хорош, поскольку он показывает другую информацию, такую как дескрипторы файлов и т.д.
Программно
Проверка это ТАК вопрос, который объясняет, как сделать это.
Ответ пользователя marc_s действительно правильный. Вам нужно обратить внимание на пространства имен XML. Однако его пример кода не будет работать непосредственно для вашего примера. Вот полный пример, который работает с предоставленным вами XML (хотя мне пришлось его очистить ... в нем отсутствовал закрывающий тег для атрибутов
).
string xmlData =
@"<?xml version='1.0' encoding='utf-8'?>
<StructureResponse
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns='http://nts-de-osm1-pxc/webservices/'>
<consolidatedItems xsi:nil='true' xmlns='http://systinet.com/wsdl/com/osm/webservices/service/' />
<rootItem xsi:type='Part' xmlns='http://systinet.com/wsdl/com/osm/webservices/service/'>
<attributes>
<Attribute>
<dataDictionary xsi:nil='true' />
<dataType>string</dataType>
<displayName>IDENT_NR</displayName>
<key>true</key>
<name>IDENT_NR</name>
<searchable>true</searchable>
<userAttribute>true</userAttribute>
<value>9662744</value>
</Attribute>
<Attribute>
<dataDictionary xsi:nil='true' />
<dataType>string</dataType>
<displayName>AI</displayName>
<key>true</key>
<name>AI</name>
<searchable>true</searchable>
<userAttribute>true</userAttribute>
<value>00</value>
</Attribute>
</attributes>
</rootItem>
</StructureResponse>";
XmlDocument document = new XmlDocument();
XmlNamespaceManager namespaceManager = new XmlNamespaceManager(document.NameTable);
namespaceManager.AddNamespace("a", "http://nts-de-osm1-pxc/webservices/");
namespaceManager.AddNamespace("b", "http://systinet.com/wsdl/com/osm/webservices/service/");
document.LoadXml(xmlData);
XmlNodeList nodes = document.SelectNodes("/a:StructureResponse/b:rootItem/b:attributes/b:Attribute", namespaceManager);
// 'nodes' contains 2 items now, as expected
Я предлагаю еще немного изучить Пространства имен XML. Попробуйте просмотреть "Часто задаваемые вопросы о пространствах имен XML" Рональда Бурре .
Вы не учитываете пространство имен XML ( xmlns = "http: // nts-de -osm1-pxc / webservices / "
) в документе!
Хорошо, у вас даже есть два отдельных пространства имен - обновлен мой образец.
Попробуйте следующее:
XmlDocument document = new XmlDocument();
document.Load(xmlpath);
XmlNamespaceManager mgr = new XmlNamespaceManager(document.NameTable);
mgr.AddNamespace("ns", "http://nts-de-osm1-pxc/webservices/");
mgr.AddNamespace("root", "http://systinet.com/wsdl/com/osm/webservices/service/");
XmlNodeList nodes = document.SelectNodes("/ns:StructureResponse/root:rootItem/root:attributes/root:Attribute", mgr);
Marc
Try:
XmlNodeList nodes = document.SelectNodes("./StructureResponse/rootItem/attributes");