2011-02-10 12 views
2

XMLファイルをシリアライズ/デシリアライズした経験はありますが、これまでの文を解析する必要はありませんでした。文字列内の単一のXMLステートメントを解析する

私はこれを保持している文字列を持っている:

<Vol Model_Type="Flat">102.14</Vol> 

を、私はちょうど102.14を抽出したいです。

XPathを使用すべきですか、それとももっと簡単なオプションがありますか?

答えて

8

.NET 3.5以降を使用している場合は、LINQ to XMLを使用してください。たとえば:

string x = "<Vol Model_Type=\"Flat\">102.14</Vol>"; 
XElement element = XElement.Parse(x); 
decimal value = (decimal) element; 

XMLの処理はそれよりもはるかに簡単に取得していません:)もちろん

、それはあなたが要素名や属性を気にしないと仮定しています。そうするなら、LINQ to XMLはまだあなたのために簡単になります。

+0

私が探していたもののようです。私は.NET 4.0を使用しています。ただし、XElementはParseプロパティを持たないようです。 System.Linq名前空間を追加しました。とにかく、正しい方向に私を指してくれてありがとう。 – xbonez

+0

@xbonez:System.Xml.Linq名前空間が必要であり、XElementにはParseメソッドがあることが最も確かです* http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement。 parse.aspx –

+0

奇妙な。 System.XmlとSystem.Xml.Linqへの参照を追加し、2つの名前空間を追加し、System.Xml.XmlElementに 'Parse'の定義が含まれていないというエラーが表示される – xbonez

0
string x = "<Vol Model_Type=\"Flat\">102.14</Vol>"; 
XElement element = XElement.Parse(x); 
decimal value=element.Value.Tostring();