1

重複の可能性:
C#: XmlDocument を使用して XML 属性を読み取る

C# で XMLDocument に以下を含めるとします。

<Hello>
<Person:"Alan" Saying:"My name is Alan">
</Hello>

では、単一の属性「発言」を取得するにはどうすればよいでしょうか。「<>」内に単一の属性が含まれている場合に機能するコードを見つけましたが、上記のように内部に複数の属性がある場合は機能しないようです。

どんな助けでも大歓迎です、私はむしろC#の初心者です:)

4

2 に答える 2

4

まず、これは有効な xml ではありません。あなたは次のようなものが欲しいと思います

<Hello>
    <Person name="Alan" Saying="My name is Alan" />
</Hello>

Alan's Saying を取得する最も簡単な方法は、

XmlDocument doc = new XmlDocument();
doc.Load("filename.xml");
string saying = doc.SelectSingleNode("//Person[@name=Alan]").Attributes["saying"].Value;

それが機能する理由の詳細な説明については、 XPath の例を参照してください。

于 2012-06-28T16:24:20.103 に答える
1

XML は次のようになります。

<Hello>
    <Person name="Alan" saying="My name is Alan"/>
</Hello>

これを逆シリアル化するクラスは次のようになります。

public class Hello
{
    public Person Person { get; set; }
}

public class Person
{
    [XmlAttribute]
    public string Name { get; set; }

    [XmlAttribute]
    public string Saying { get; set; }
}

それの使い方:

// Create a new XmlSerializer instance with the type of the test class
XmlSerializer SerializerObj = new XmlSerializer(typeof(Hello));

// load xml into string reader
StringReader reader = new StringReader(yourXmlString);

// Load the object saved above by using the Deserialize function
Hello LoadedObj = (Hello)SerializerObj.Deserialize(reader);

XmlSerializerの使用方法の詳細については、MSDN の記事を参照してください。

于 2012-06-28T16:27:37.140 に答える