dポイントプレゼントキャンペーン実施中!

以下のようなXMLファイルがあったとき、serverとdatadaseの属性値を取り出す方法がわかりません。

どなたかご教授ください。

また、複数あるpropertyの中から(value=)"sa"を取得する方法もお願いします。

現在、C#で、次のようにしてXMLファイルにアクセスして、ルート要素名を取り出すことには成功しています。

------ ソース ここから --------
XmlDocument xmlDoc = new XmlDocument();

// XmlDocumentオブジェクトを作成
xmlDoc.Load(fileName);

XmlElement xmlRoot = xmlDoc.DocumentElement;
Console.Write("ルート名は[" + xmlRoot.Name + "]です。\n");

--------- ソース ここまで ---------




--------- ここからXMLファイル --------
<?xml version="1.0" encoding="utf-8"?>

<!-- ↓これ(server)がルート名 -->
<server maintenance="No">

<!-- データベース接続設定 -->
<database providerInvariantName="System.Data.SqlClient" connectionString="xxxxx">
<property key="dbUrl" value="xxxxx" />
<property key="userName" value="sa" />
<property key="userPassword" value="xxxxxxxx" />
<property key="driverClass" value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />
</database>

<!-- LDAP設定 -->
<ldap>
<!-- シングルサインオン -->
<sso Password="xxxxx" SyncTime="3600" />
</ldap>

</server>

A 回答 (1件)

やりかたは、色々あるけど、1つの方法


----------------------------------------------------------------
XmlNode xmlRoot = xmlDoc.DocumentElement;
Console.Write("ルート名は[" + xmlRoot.Name + "]です。\n");
Console.WriteLine(xmlRoot.SelectSingleNode("/server/@maintenance").Value);
Console.WriteLine(xmlRoot.SelectSingleNode("/server/database/@providerInvariantName").Value);
Console.WriteLine(xmlRoot.SelectSingleNode("/server/database/@connectionString").Value);
Console.WriteLine(xmlRoot.SelectSingleNode("/server/database/property/@value[../@key='userName']").Value);
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!