- 締切済み
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を操作するにはどうしたら良いですか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- himajin100000
- ベストアンサー率54% (1660/3060)
- himajin100000
- ベストアンサー率54% (1660/3060)
- himajin100000
- ベストアンサー率54% (1660/3060)
- himajin100000
- ベストアンサー率54% (1660/3060)
- himajin100000
- ベストアンサー率54% (1660/3060)
関連する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;"; の部分がまずいらしく動作しません。 どのようにすればよいでしょうか。 よろしくお願いします。
- 締切済み
- JavaScript
- 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>
- ベストアンサー
- JavaScript
- WebサイトとXML
最近XMLを勉強している者です。 XMLはXSLTと呼ばれるファイルを作成することによってXML以外の言語へ変換できるのですよね。 一方、Webサイトはバージョンの違いこそあれ、基本的にはHTML(あるいはXHTML)で書かれていますよね。 疑問に思ったのですが、世の中にあるWebサイトの多くはXMLで書かれており、それをHTML(あるいはXHTML)に変換したものなのでしょうか? 私は基本的に手打ちで直接HTMLを書いて、それをアップロードしてWebサイトを作ってきたので、XML文書を作成してそれをHTMLに変換するというやり方に衝撃を覚えました。
- 締切済み
- 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>
- 締切済み
- Microsoft ASP
- 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()で検証してみたんですが、結果はなにも表示されませんでした。 言葉不十分で申し訳ありませんが、解決法教えていただけませんか? よろしくお願いいたします。
- ベストアンサー
- JavaScript
- 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")
- 締切済み
- SE・インフラ・Webエンジニア
- 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
お礼
状況からするとやはり method="xml" では扱いがhtmlではないのでstyleを保持していない感じが 。 実際 getProperties (functionでない言われる)で取れないだとか setAttributeで"style"として書き込んでもそれはstyleではなくstyleという名前をもった単なる属性値になってしまうだとか・・・ そんな状況です。。。 ただ、javascript的なstyle操作ではなくDOM的なstyle操作や作成ができればあるいは…とも思いますがそれが件の記述(DOM翻訳)の辺りの文章なのかも…