2014-01-06 64 views
0

我有一個XML文件,如下所示。我想從這個文件中提取Version號碼。 我試過XML解析。但是,這僅適用於節點值。我可以像下面這樣獲取這個文件。 var doc = XDocument.Load("WMAppManifest.xml");用C#從XML中提取應用程序版本號

<?xml version="1.0" encoding="utf-8"?> 
<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2012/deployment" AppPlatformVersion="8.0"> 
    <DefaultLanguage xmlns="" code="en-US" /> 
    <App xmlns="" ProductID="{a3f55b1e-c183-4645-9b19-87a41a206978}" Title="sometitle" RuntimeType="Silverlight" Version="1.0.0.0" Genre="apps.normal" Author="M-Files author" BitsPerPixel="32" Description="Apache Cordova for Windows Phone" Publisher="CordovaExample" PublisherID="{b93a0d8e-5aa9-4d9b-b232-17e2d852e779}"> 
    <IconPath IsRelative="true" IsResource="false">ApplicationIcon.png</IconPath> 
    </App> 
</Deployment> 
+3

提示:*不*使用正則表達式! (請參閱以下http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) – ColinE

+0

哪個版本? '<?xml version'或'/ Deployment/App/@ Version'中的一個? –

+0

我的意思是應用程序版本 – Ramesh

回答

3

如下,您可以訪問XML聲明節點:

XmlDeclaration declaration = doc.ChildNodes 
           .OfType<XmlDeclaration>() 
           .FirstOrDefault(); 

然後,您可以讀取的declaration.Version值。

或者,如果你是XML文檔本身的「應用程序」的版本屬性後,請嘗試以下

string version = doc.Descendants("App") 
        .Single() 
        .Attribute("Version").Value 
相關問題