1

XMLReaderクラスに奇妙な問題があります。URLからAtomフィードを取得すると、xmlツリーの一部の要素に次のような名前が付けられます。

<element:title>Hello World!</element:title>
<element:text>This is just an example</element:text>
<element:id>1</element:id>

私は使用しています

[XmlElement("element:id")]

しかし、これは機能していません。コードを見ると、読者がこれを次のように解析していることがわかります。

element_x003A_id

しかし、私が使用する場合

[XmlElement("element_x003A_id)]

何も得られません。Xmlエンコーディングをいじってみましたが、プロパティは読み取り専用です。どうすればこれを回避して、要素のコンテンツを取得できますか(要素にセミコロンがない場合は問題なく機能します)?

4

1 に答える 1

4

element名前空間のエイリアスです。どこかにあります(通常、ファイルの先頭にあります)

<foo ... xmlns:element="http://something/blah/blog">

「http:// something / blah/blog」は重要です。基本的に、次のものが必要です。

[XmlElement("id", Namespace="http://something/blah/blog")]
public int Id {get;set;}

または、繰り返し使用されるため、次のようになります。

const string MyNamespace = "http://something/blah/blog";
//...
[XmlElement("id", Namespace=MyNamespace)]
public int Id {get;set;}
于 2012-07-13T07:13:04.090 に答える