• 締切済み

xml+xslt変換後のstyle操作

環境  Firefox 2.0.0.3 内容  xmlをxsltでxhtmlに変換して表示させた場合style操作ができない 以下のような エレメントを挿入するjavascriptを記述。 (ヘルプ表示用に良く見られる手法) //------------------------- MyObj = document.createElement("ins"); MyObj.style.position = "absolute"; MyObj.style.top = "-10000px"; MyObj.style.width = "auto"; document.getElementsByTagName("body")[0].appendChild(MyObj); //------------------------- 通常のhtmlやxhtmlから使う場合には問題ないのにxslt変換後のdocumentでstyle操作をしようとすると「MyObj.style has no properties」と言われ操作できなかった。 この状況(xslt変換後)でstyleを操作するにはどうしたら良いですか?

みんなの回答

回答No.5

判明しました。 ><html xmlns="http://www.w3.org/1999/xhtml"> とすれば特に必要ないと思われる。 【やっぱりcreateElementNSを使用しないと駄目です。】 HTMLと同等に考えられているのはXHTML 1.0であり、 HTMLのins要素互換とされているのは, XHTML 1.0に登場する, http://www.w3.org/1999/xhtml名前空間のins要素。 「XHTML1.0の」ins要素は「名前空間の無い」ins要素とは全く異なるもの。(型変換できません。良く考えたらできるわけがない) createElement関数が返すのは「名前空間のない」ins要素。 #ちなみに「名前空間がないins要素」と「名前空間はあるけど,名前空間接頭辞の無いins要素」も全然別物。 (そのため、これらの回答のサンプルソースの元になった http://oshiete1.goo.ne.jp/qa2935658.html の質問ではtable要素がxmlns=""という属性を持っている) #method="html"の場合名前空間がつこうがつくまいが関係ないみたい。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"> <xsl:param name="id" /> <xsl:output method="xml" standalone="yes" encoding="UTF-8" media-type="text/xml" omit-xml-declaration="yes" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" indent="yes" /> <xsl:template match="/"> <html> <head> <title>KDS</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="stylesheet" href="/css/style.css" type="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <script type="text/javascript"> function hoge(){ var MyObj; MyObj = document.createElementNS("http://www.w3.org/1999/xhtml","ins"); YourObj = document.createElement("ins"); alert(MyObj); alert(YourObj); MyObj.style.position = "absolute"; MyObj.style.width = "auto"; MyObj.textContent="挿入された文字列"; document.getElementsByTagName("body")[0].appendChild(MyObj); }; </script> </head> <body onload="hoge();"> <xsl:apply-templates select="info/group/page[@fileId='pteach']" mode="main"/> </body> </html> </xsl:template> <xsl:template match="info/group/page" mode="main"> <table > <caption><xsl:value-of select="title"/></caption> <xsl:apply-templates select="teacher[position() mod 3 = 1]"/> </table> </xsl:template> <xsl:template match="teacher"> <tr> <td><xsl:value-of select="name"/>:<xsl:value-of select="subject"/></td> <td><xsl:value-of select="following-sibling::teacher[1]/name"/>:<xsl:value-of select="following-sibling::teacher[1]/subject"/></td> <td><xsl:value-of select="following-sibling::teacher[2]/name"/>:<xsl:value-of select="following-sibling::teacher[2]/subject"/></td> </tr> </xsl:template> </xsl:stylesheet>

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

ごめんなさい。再現はしました・・・がやっぱりわかりません。 明日気が向いたときに色々考えてみます。(明日で結論が出せる保証はできない) >しかし method="html" は出力が(versionを省略すると) html4.0 である筈なので出力表記としておかしい気がします。 気づかなかったorz...俺の痛恨のミスですね。 ====================以下ほぼ愚痴・思考経路です==================== http://www.infoteria.com/jp/contents/xml-data/REC-xslt-19991116-jpn.htm#section-HTML-Output-Method >html 出力メソッドは、エレメントの展開された名前が null のネームスペース URI を持つ場合を除き、 xml 出力メソッドと異なる方法でエレメントを出力すべきではない。 >html 出力メソッドは空エレメントのエンドタグを出力すべきではない。 HTML 4.0 の空エレメントは、area、base、basefont、 br、col、frame、 hr、img、input、 isindex、link、meta、 および param である。 たとえば、スタイルシートに <br/> または <br></br> と記述されたエレメントは、<br> と出力される。 とは書いてあるんですけど。名前空間を持つXHTMLの空要素はどっちだよっ!(笑) 記述からしてHTML 4.0以外も(というかぶっちゃけXHTML 1.0)想定してそうに思えるんですけどね #HTMLは名前空間の話がそもそも無いはず(HTML 4.0はそもそも名前空間nullとして解釈されるべきなの?) >勿論やってみたけれど"undefined" 念のため。代入後, alert(MyObj.style); /* undefinedで当然 */ ではなく alert(MyObj); Minefieldの場合, method="xml"の時,[object Element] method="html"の時,[object HTMLInsElement] と表示されました。 Opera 9.20の場合,共に [object HTMLModElement] と出力されています(注意:XMLであっても[object Node]とか[object Element]ではない。) 参考 http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-79359609 IE 7の場合[object] XMLDOMの場合ないことを示す記述を探そうとすればすると http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-ElementCSSInlineStyle Inline style information attached to elements is exposed through the style attribute. This represents the contents of the STYLE attribute for HTML elements (【or elements in other schemas or DTDs which use the STYLE attribute in the same way】). とあるので対応していてほしいというか・・・うん。 ただ、その先読むと The expectation is that an instance of the ElementCSSInlineStyle interface can be obtained by using 【binding-specific casting methods】 on an instance of the Element interface when the element supports inline CSS style informations. っていう記述があって、キャストしろということなのかなあと。 http://bakera.jp/hatomaru.aspx/htmlbbs/article/1009 http://bakera.jp/hatomaru.aspx/htmlbbs/article/1021 ちょっと混乱してます。quadsさんあたりが登場してきてくれると個人的には嬉しかったり。

noname#39970
質問者

お礼

状況からするとやはり method="xml" では扱いがhtmlではないのでstyleを保持していない感じが   。 実際 getProperties (functionでない言われる)で取れないだとか setAttributeで"style"として書き込んでもそれはstyleではなくstyleという名前をもった単なる属性値になってしまうだとか・・・ そんな状況です。。。 ただ、javascript的なstyle操作ではなくDOM的なstyle操作や作成ができればあるいは…とも思いますがそれが件の記述(DOM翻訳)の辺りの文章なのかも…

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

試したところ,Fx2.0.0.3でも正常に動作した。エラーコンソールに文字列はなし。 ちなみにMinefield,Fx 2.0.0.3共に,hoge関数内に入れなかった場合は以下のエラーが出た。 エラー: document.getElementsByTagName("body")[0] has no properties ソースファイル: file:///D:/Oshiete_Goo/Q2936141/hogeresult.html 行: 14 >style操作をしようとすると こういう時、俺なら「呼び出しているオブジェクトのクラスや型」をalert関数などを用いて調べてみるけどね。nullとかundefinedになってないかどうか。

noname#39970
質問者

補足

勿論やってみたけれど"undefined" どうして値が取れないのか どうやったら値を取れるのか と考えて、とりあえず無理矢理設定してみたりとかやったけれど解決できず・・・ No1の通り、今のところ判っているのは出力が"html"ではなく"xml"であったため駆動しないという事だけ。。。 xhtmlはFirefox的にはhtmlとして扱わなければ動作しないのかもしれない・・・ 書類としてはxmlの筈なのに・・・

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

補足。あまり考慮しなかったが本来は createElementNSを利用すべきだったかもしれない http://javascript.g.hatena.ne.jp/keyword/createElement これよりFx 2.0.0.3をインストールして検証する予定だ。 同じサンプルをFx 2.0.0.3で動作させてみて動かなければFx 2.0.0.3とFx 3.0a4preの間に加えられた修正に関連する問題。そうでなければ、そちらのソースコードの問題。

noname#39970
質問者

お礼

<html xmlns="http://www.w3.org/1999/xhtml"> とすれば特に必要ないと思われる。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

Minefield(Fx 3.0a4pre)で再現しない。 (かなり余計な記述が入っているが XMLの記述って結構,名前空間やXML宣言を書くのが面倒なので手元のサンプルを利用したため) ================hoge.xml==================== <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="hoge.xsl"?> <info> <group> <page fileId="pteach"> <title>教員一覧</title> <teacher> <name>山田信夫</name> <subject>英語</subject> </teacher> <teacher> <name>木田淳</name> <subject>数学</subject> </teacher> <teacher> <name>島義博</name> <subject>英語</subject> </teacher> <teacher> <name>山口正</name> <subject>倫理</subject> </teacher> <teacher> <name>広山進</name> <subject>情報</subject> </teacher> <teacher> <name>桃山博美</name> <subject>現代文</subject> </teacher> <teacher> <name>春日芳樹</name> <subject>音楽</subject> </teacher> </page> </group> </info> =====================hoge.xsl=================== <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"> <xsl:param name="id" /> <xsl:output method="html" standalone="yes" encoding="UTF-8" media-type="text/html" omit-xml-declaration="yes" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" indent="yes" /> <xsl:template match="/"> <html> <head> <title>KDS</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="stylesheet" href="/css/style.css" type="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <script type="text/javascript"> function hoge(){ MyObj = document.createElement("ins"); MyObj.style.position = "absolute"; /* MyObj.style.top = "-10000px"; */ MyObj.style.width = "auto"; MyObj.textContent="挿入された文字列" document.getElementsByTagName("body")[0].appendChild(MyObj); } </script> </head> <body onload="hoge();"> <xsl:apply-templates select="info/group/page[@fileId='pteach']" mode="main"/> </body> </html> </xsl:template> <xsl:template match="info/group/page" mode="main"> <table > <caption><xsl:value-of select="title"/></caption> <xsl:apply-templates select="teacher[position() mod 3 = 1]"/> </table> </xsl:template> <xsl:template match="teacher"> <tr> <td><xsl:value-of select="name"/>:<xsl:value-of select="subject"/></td> <td><xsl:value-of select="following-sibling::teacher[1]/name"/>:<xsl:value-of select="following-sibling::teacher[1]/subject"/></td> <td><xsl:value-of select="following-sibling::teacher[2]/name"/>:<xsl:value-of select="following-sibling::teacher[2]/subject"/></td> </tr> </xsl:template> </xsl:stylesheet> ===============出力されたhtml(eXtyleを用いた)================= <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>KDS</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <link rel="stylesheet" href="/css/style.css" type="text/css"/> <meta http-equiv="Content-Script-Type" content="text/javascript"/> <script type="text/javascript"> function hoge(){ MyObj = document.createElement("ins"); MyObj.style.position = "absolute"; /* MyObj.style.top = "-10000px"; */ MyObj.style.width = "auto"; MyObj.textContent="挿入された文字列" document.getElementsByTagName("body")[0].appendChild(MyObj); } </script> </head> <body onload="hoge();"> <table> <caption>教員一覧</caption> <tr> <td>山田信夫:英語</td> <td>木田淳:数学</td> <td>島義博:英語</td> </tr> <tr> <td>山口正:倫理</td> <td>広山進:情報</td> <td>桃山博美:現代文</td> </tr> <tr> <td>春日芳樹:音楽</td> <td>:</td> <td>:</td> </tr> </table> </body> </html> ===================結果=========================== .xmlファイルを直接Minefieldに読み込ませたときも, .htmlファイルを読み込ませたときも,「挿入された文字列」という文字列が表示された。

noname#39970
質問者

補足

サンプル付きでありがとうございます。 このサンプルと表記で動作するしないの境界線を調査したところ >method="html" >media-type="text/html" 自分のは method="xml" media-type="application/xhtml+xml" これを method="html" に変更するだけで動作するようになりました。 しかし method="html" は出力が(versionを省略すると) html4.0 である筈なので出力表記としておかしい気がします。 「xhtmlとして出力」であるときも method="html" で良いとする資料を探すも見あたらず納得行かないので資料があるようなら提示をお願いします。 単にブラウザの動作モードとしても method="html" でなければならないのなら別ですが・・・

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • XSLT

    すいません、再び質問があったのですが書く前に締め切ってしまいましたので新しく作らせていただきます。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2093554&rev=1 のNo.4を見て書いてみたのですが、 IE---XSLTファイル内に書いてあるテーブルタグが動作しない、 Firefox---XSLTファイル内に直接書いてある文字が表示されない という状態になってしまいました。 ちなみにXSLTファイルをFirefoxに放り込むと 「この XML ファイルにはスタイル情報が関連づけられていないようです。以下にドキュメントツリーを表示します。」 と表示されますが何か関係があるのでしょうか・・・?

    • ベストアンサー
    • XML
  • xmlファイルが生成されない

    <?php //DomDocumentを呼び出す $dom = new DomDocument('1.0','UTF-8'); //要素ノード[document]を追加 $document = $dom->appendChild($dom->createElement('document')); //新しい要素をdocumentの子要素として挿入する $document->appendChild($dom->createElement('name','名前です')); $document->appendChild($dom->createElement('text','テキストです。')); //字下げや空白を考慮してきれいに整形した出力を行う $dom->formatOutput = true; //同階層にtest.xmlとして保存 $dom->save('test.xml'); //出力 echo $dom->saveXML(); ?> のように、同じディレクトリ内にXMLファイルを生成するphpプログラムを作成してみたのですが、 ブラウザからこのPHPファイルにアクセスしてもXMLファイルが作られません。どうすれば良いのでしょうか。 なにかphp,apache等の設定をしてないからでしょうか。 よろしくお願いします。

    • 締切済み
    • PHP
  • スタイルシートのレイヤーに乗せた画像を動的に表示する方法

    <div id="test" style="position=absolute; top=400px; left=200px; z-index=10;"><img src="gazou.gif"></div> 上記を動的に表示するために以下の方法を考えました var element = document.createElement('div'); element.id = "test"; element.style = "position=absolute; top=400px; left=200px; z-index=10;"; element.innerHTML = '<img src="gazou.gif">'; var objBody = document.getElementsByTagName("body").item(0); objBody.appendChild(element); しかしこれだと、element.style = "position=absolute; top=400px; left=200px; z-index=10;"; の部分がまずいらしく動作しません。 どのようにすればよいでしょうか。 よろしくお願いします。

  • XMLをXSLTで変換するとき、XMLの要素名をそのまま表示したいのですが…

    お世話になっております。 XMLとXSLTの勉強をしているのですが、 XMLの要素名をXSLTで変換したときそのまま表示することは可能でしょうか? ---------------------------------------------------------- コレクション.xml ---------------------------------------------------------- <コレクション>  <書籍リスト>   <書籍>    <NO>001</NO> <!--↓”タイトル”という文字列を何らかのXSLT要素でHTML直書きせずにに表現したいのです↓-->    <タイトル>ド●えもん第一巻</タイトル>    <ジャンル>マンガ</ジャンル>    <価格>\410</価格>   </書籍>  </書籍リスト> </コレクション> ---------------------------------------------------------- 出力例 ---------------------------------------------------------- //↓ここにXML要素名を入れるなんてできるのでしょうか? タイトル    |ジャンル|価格| --------------------------------- ド●えもん第一巻|マンガ |\410| どなたか、ご教授の程、宜しくお願いいたします。

    • 締切済み
    • XML
  • xml+xslでの変換内容をtextareaへ

    お世話になります。 xml+xslでhtmlに変換する際、その変換内容をtextareaにも表示させるようにしたいのです。 使用ブラウザ:FireFox。現状はFirebugでDOMツリーを手動で参照してる状況です。 現在は、ノードをtextareaに表示しようとすると[object DocumentFragment]とだけ出てしまい、DocumentFragmentという概念あることは分かり、色々調べcreateElement()やcreateTextNode()など、その他思いつく限りの事でテストしてみてるのですが、どうにもノードをHTMLタグとしてtextareaに表示させる事が出来ません。 以下にポイントとなるソースを掲示しますので、どなた様か、お助け願えませんでしょうか --test.html---- <html><head> <meta content="text/html; charset=utf8" http-equiv="content-type"> <title>JS+xslt</title> <script type="text/javascript"> function tramsformlists(xmlFile, xslFile, resultNodeID){ var xml, xslt, newDoc; if(document.all){ xml = new ActiveXObject("Microsoft.XMLDOM"); xslt = new ActiveXObject("Microsoft.XMLDOM"); }else { xml = document.implementation.createDocument("", "", null); xslt = document.implementation.createDocument("", "", null); } xml.async = false; xslt.async = false; xml.load(xmlFile); xslt.load(xslFile); if(document.all){ document.getElementById(resultNodeID).innerHTML = xml.transformNode(xslt); }else { var xsltp = new XSLTProcessor(); xsltp.importStylesheet(xslt); newDoc = xsltp.transformToFragment(xml, window.document); var df = document.createDocumentFragment(); cloneDoc= newDoc.cloneNode(true); document.getElementById("Div"+resultNodeID).innerHTML = ""; document.getElementById("Div"+resultNodeID).appendChild(newDoc); t = document.msg_form.TextareaTest.value; document.msg_form.TextareaTest.value =t + df.appendChild(cloneDoc); } } </script> </head><body> <form name="msg_form"> <ul> <li> <input type="button" value="Menu" onclick="tramsformlists('test0.xml','test0.xsl','Test')"><br> <div id="DivTest"></div> <textarea cols="50" rows="10" id="TextareaTest">あああああああ</textarea> </li> </ul> </form> </body></html> --test0.xml-- <?xml version="1.0" encoding="utf-8"?> <root> <nolink_logo> </nolink_logo> </root> --test0.xsl-- <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="utf-8"/> <xsl:template match="root"> <xsl:apply-templates select="nolink_logo"/> </xsl:template> <xsl:template match="nolink_logo"> <xsl:call-template name="Test" /> </xsl:template> <xsl:template name="Test"> <xsl:variable name="menu" select="document('test1.xml')/root"/> <div>画像を表示 <xsl:for-each select="$menu"> <xsl:element name="a"> <xsl:attribute name="href"> <xsl:value-of select="url[1]"/> </xsl:attribute> <xsl:attribute name="target">_blank</xsl:attribute> <xsl:element name="img"> <xsl:attribute name="src"> <xsl:value-of select="img[1]"/> </xsl:attribute> </xsl:element> </xsl:element> </xsl:for-each> </div> </xsl:template> </xsl:stylesheet> --test1.xml-- <?xml version="1.0" encoding="utf-8"?> <root> <img>http://domain/image2.gif</img> <url>http://domain/test.html</url> </root>

  • WebサイトとXML

    最近XMLを勉強している者です。 XMLはXSLTと呼ばれるファイルを作成することによってXML以外の言語へ変換できるのですよね。 一方、Webサイトはバージョンの違いこそあれ、基本的にはHTML(あるいはXHTML)で書かれていますよね。 疑問に思ったのですが、世の中にあるWebサイトの多くはXMLで書かれており、それをHTML(あるいはXHTML)に変換したものなのでしょうか? 私は基本的に手打ちで直接HTMLを書いて、それをアップロードしてWebサイトを作ってきたので、XML文書を作成してそれをHTMLに変換するというやり方に衝撃を覚えました。

  • VBSでXMLを操作したい

    現在Webアプリケーションの簡単なものを作成しています。 データベースはXMLで出来上がっているのでそれを使いたいのですが、入力フォームに入れてもらったデータをXMLに変換してXMLデータベースに追加、保存しようと思います。 一応フォームに入力したものをXMLデータとして出力までは考えられたのですが、既存のXMLを読み出す方法と追加する方法、保存する方法がよくわかりません。 よろしくお願いいたします。 <html> <head> <title>入力フォーム</title> <script type="text/vbscript"> <!-- Option Explicit dim xmldoc Sub window_onload() set xmldoc=createObject("MSXML2.DOMDocument") xmldoc.async=False xmldoc.loadXML("<?xml version='1.0'?><全体/>") End Sub Sub makeXml() dim myInfoElement,myDataElement,myDataText dim ret1,ret2,ret3,ret4 set ret1=xmldoc.createTextNode(vbCRLf) xmldoc.documentElement.appendChild(ret1) set myInfoElement=xmldoc.createElement("名簿") set ret2=xmldoc.createTextNode(vbCRLf) myInfoElement.appendChild(ret2) set myDataElement=xmldoc.createElement("名前") set myDataText=xmldoc.createTextNode(myForm.myName.value) myDataElement.SetAttribute "年",myForm.myAge.Value myDataElement.appendChild(myDataText) myInfoElement.appendChild(myDataElement) set ret3=xmldoc.createTextNode(vbCRLf) myInfoElement.appendChild(ret3) xmldoc.documentElement.appendChild(myInfoElement) set ret4=xmldoc.createTextNode(vbCRLf) xmldoc.documentElement.appendChild(ret4) myForm.xmlSource.value=xmldoc.xml End Sub --> </script> </head> <body> <form name="myForm"> 名前:<input type="text" size="30" name="myName"><br> 年:<input type="text" size="10" name="myAge"> <button onClick="makeXml()">XMLの作成</button><br> <textarea name="xmlSource" cols="60" rows="15"></textarea> </form> </body> </html>

  • JavaScriptを使ってXMLにタグを打ち込みたいんですが。。

    プログラミング初心者で申し訳ありません。 JavaScriptを使っているのですが、ボタンを押して、<math>~</math>の中に数式のタグを入力しようとしています。 現状のソースですが、 ファイル名:sample.xhtml ~ <math id="math" xmlns="http://www.w3.org/1998/Math/MathML"> #数式のタグの入力位置 </math> <script type="text/javascript"> function mul1(){ var info = document.getElementById("math"); var txt1 = document.createTextNode("<mi>"); var txt2 = document.createTextNode("x"); var txt3 = document.createTextNode("</mi>"); info.appendChild(txt1); info.appendChild(txt2); info.appendChild(txt3); } </script> <form> <input type = "button" value="x" onclick ="mul1()" /> </form> ~ となっています。 理想は <math id="math" xmlns="http://www.w3.org/1998/Math/MathML">  <mi>x</mi> </math> ボタンクリック後こういう感じでタグを挿入したいと考えています。 function mul1(){ var info = document.getElementById("math"); var element1 = document.createElement("mi"); var element2 = document.createElement("/mi"); var txt = document.createTextNode("x"); info.appendChild(element1); info.appendChild(txt); info.appendChild(element2); } 要素追加と思いcreateElement()で検証してみたんですが、結果はなにも表示されませんでした。 言葉不十分で申し訳ありませんが、解決法教えていただけませんか? よろしくお願いいたします。

  • VB6でXMLを作成しているのですがエラーが出ます

    VB6でXML作成のプログラムを作ったのですが、読み取り専用のノードを編集しようとしましたのメッセージボックスが表示されます。 どなたかどこが悪いのか、ご教授願います。 ソースコードは以下の通りです。 Dim xmlDoc As MSXML.DOMDocument 'XMLドキュメント Dim xmlPI As IXMLDOMProcessingInstruction 'XML宣言 Dim node(3) As IXMLDOMNode '要素 Dim attr As MSXML.IXMLDOMAttribute '属性 Dim newText Set xmlDoc = New MSXML.DOMDocument 'XMLドキュメントを作成します。 'XML宣言を追加します。 Set xmlPI = xmlDoc.appendChild(xmlDoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""")) '<ClinicalDocument>要素を追加します。 Set node(1) = xmlDoc.createElement("ClinicalDocument") Call xmlDoc.appendChild(node(1)) 'xmlns:xsi属性を追加します。 Set attr = xmlDoc.createAttribute("xmlns:xsi") Call node(1).Attributes.setNamedItem(attr) attr.nodeValue = "http://www.w3.org/2001/XMLSchema-instance" ''ここでエラーが出ます '<Customer>要素を追加します。 Set node(2) = xmlDoc.createElement("Customer") Call node(1).appendChild(node(2)) Call node(2).appendChild(xmlDoc.createTextNode(vbNewLine)) 'id属性を追加します。 Set attr = xmlDoc.createAttribute("id") Call node(2).Attributes.setNamedItem(attr) attr.nodeValue = "1" '<Name>要素を追加します。 Set node(3) = xmlDoc.createElement("Name") Call node(2).appendChild(node(3)) Set newText = xmlDoc.createTextNode("Jhon") Call node(3).appendChild(newText) 'XMLドキュメントの出力 xmlDoc.save (App.Path & "\customer.xml")

  • XMLをHTMに変換

    Sample.xmlをSample.htmに変換するXSLTファイルに作成して、 XMLファイルをブラウザで表示すると自動でスタイルが適用されるよういするには どうしたらいいでしょうか? よろしくお願いします。 ↓Sample.xml <?xml version="1.0" encoding="UTF-8" ?> <!-- below is a data for order --> <itemdata> <item number="i001"> <itemId>pc-x1</itemId> <itemName>desktopPC X1</itemName> <registDate>2009-05-10</registDate> <description> <![CDATA[ powerful! & high grade!, <win7>usable, URL http://www.pcx1/ ]]> </description> <note /> <stock>95</stock> <check /> </item> </itemdata>

    • 締切済み
    • XML