web-dev-qa-db-ja.com

XElementの値を![CDATA [***]]でラップするにはどうすればよいですか?

これは、.netからXDocumentを使用する場合です。

これはうまくいくと思いました...

xElement.Element(elementName).Value = new XCData(value).ToString();

...しかし、それはこのように出てきます...

<name>&lt;![CDATA[hello world]]&gt;</name>
43
Ian Warburton

試す

xElement.Element(elementName).ReplaceNodes(new XCData(value));
37
Ral Zarek

XCDataXNode の一種です。したがって、値を設定するのではなく、要素に Add を試行する必要があります(つまり、要素の平坦化されたテキストコンテンツになるように documented です)。

xElement.Element(elementName).Add(new XCData(value));
41

XElement を作成している場合(それを変更するのと比べて)、次のように、コンテンツとしてコンストラクタに直接追加することもできます。

new XElement(elementName, new XCData(value));
37
jigamiller