• ベストアンサー

CDATAセクションを属性値で使いたい

属性内に以下の計算式を入れてXPathで読み込む簡単なプログラムを作っています。 <X 計算式="IF(C16>0,0,1)" /> では、”>”の記号があるためXML構文がエラーとなります。 よって<X 計算式="IF(C16&lt;0,0,1)" /> と書き換えるのがベータだと思いますが、計算式をそのまま使いたいので <X 計算式="<![CDATA[IF(C16>0,0,1)]]>" /> としたいのですが、属性値の中にCDATAセクションを含めることができずこれも構文エラーとなります。 やはり&lt;に置き換えるしか方法はないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

多分CDATAを載せることは出来ないと思う。 自分が混乱しないために諦めて >やはり&lt;に置き換えるしか方法はないのでしょうか? に慣れることを非常に強く推奨するけど, >では、”>”の記号があるためXML構文がエラーとなります。 本当に?検証してみた?少なくともIE,Firefoxではエラーにならないよ。 属性値のBNFを見ると http://www.w3.org/TR/REC-xml/#NT-AttValue AttValue ::= '"' ([^<&"] | Reference)* '"' | "'" ([^<&'] | Reference)* "'" で [^<&"]だから>は除外されないよ? <X 計算式="IF(C16<0,0,1)" /> とか不等号が逆向きになったらエラーだけどね。 HTMLの話だけどこれも面白いよ http://www.satoshii.org/markup/notes/2002/02#day24-2

noname#114260
質問者

お礼

ありがとうございます。 出来ないのであれば、そういうものだと思って諦めたいと思います。 URL参考にさせてもらいます。

関連するQ&A

専門家に質問してみよう