2012-01-23 10 views
2

私は、Sharepointリストからデータを取得し、そこからXMLを生成するXMLジェネレータスクリプトを変更しています。データリストから引かれているデータは、周囲のPタグなしの「いくつかのテキスト」になるだろうXCDataにXElementを挿入します。

<node> 
    <node2> 
     <![CDATA[ 
      <p>Some text</p> 
     ]]> 
    </node2> 
    <otherNodesHere>Yadda yadda</otherNodesHere> 
</node> 

:のようにXMLの

1つのセクションが見えます。

だから、私がやってを望むよ何(抜粋)です。

new XElement("node", 
    new XElement("node2", 
     new XCData(
      new XElement("p", variableForTheDatainSP)), 

しかし、私は新しいXCData(新しいXElementオブジェクトを( "P"、....))で行うことはできません、 これについて簡単な方法は何でしょうか?

答えて

5

<p>Some text</p>ではありません。実際にはXElementです。これはXMLのようなテキストです。だから、使用したい:

new XElement("node", 
    new XElement("node2", 
     new XCData("<p>Some text</p>"))) 

それとも、XElement経由でそれを構築したい場合、あなたは常にToString()を呼び出すことができます。

new XElement("node", 
    new XElement("node2", 
     new XCData(
      new XElement("p", variableForTheDatainSP).ToString()), 
+0

ありがとう... ToString()はトリックを行いました。 – snowBlind

1

これは要素ではありません。
CDATAブロックの全体のポイントは、それらができることです。プレーンテキストを保持します。

XMLのように見えるプレーンテキストをCDATAブロックに配置する場合は、new XElement(...).ToString()を渡して生のXML文字列を取得できます。

+0

私はCDATAについては、以下のことを得るかを。残念ながら、XMLの外観は手に負えません。私は単にXML文書を与えられただけであり、XMLジェネレータのスクリプトに追加して、リストから取得したデータと同じXMLを吐き出すようにしなければなりません。 – snowBlind