Вопрос
Мы создаем файл VCPROJ с ключевым словом MakeFileProj, чтобы использовать нашу собственную сборку в Vs. Мой вопрос: использование C#, как прочитать «C ++» из следующего файла VCPROJ:
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="TestCSProj"
ProjectGUID="{840501C9-6AFE-8CD6-1146-84208624C0B0}"
RootNamespace="TestCSProj"
Keyword="MakeFileProj"
>
<Platforms>
<Platform
Name="x64"
/>
<Platform
Name="C++" ===> I need to read "C++"
/>
</Platforms>
Я использовал Xmlnode и добрался до второй платформы:
String path = "C:\\blah\\TestCSProj\\TestCSProj\\TestCSProj.vcproj";
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(fs);
XmlNodeList oldFiles = xmldoc.GetElementsByTagName("Platform");
XmlAttribute name = oldFiles[1].Attributes[0];
Console.WriteLine(name.Name);
Это будет печатать имя, но мне нужно "C ++". Как мне это прочитать?
заранее большое спасибо
Решение
Использовать name.Value
.
Другие советы
Вы можете получить доступ к значению атрибута с Value
имущество:
Console.WriteLine(name.Value);
Или даже лучше, получите его по имени вместо индексации, что короче и надежнее:
Console.WriteLine(((XmlElement)oldFiles[1]).GetAttribute("Name"));
А GetAttribute
Метод непосредственно возвращает значение как строку.
Не связан с StackOverflow