質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

2915閲覧

タグ付きの文字列をxmlにappendするには

macinspire

総合スコア25

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2016/11/13 05:51

エクセルに記載した値をXML化するvbaを制作しました。
MSXML2を使用しています。

要素や属性を指定して格納する場合は
createelement、setAttribute
等で実装しています。

すでにタグが付いている文字列を結合したい場合、
テキストノードとしてappendすると、<>が実態参照となります。
タグ付きテキストを別XMLに、ダイレクトにぶら下げる命令、手法はありますか。
あるいは、タグ付きテキストを実体参照化しない手法はありますか。
エクセルの文字列には不特定多数の要素、属性があります。

ヒントを頂きたいです。

・xml <root> <text>テキスト<text> </root> ・結合したい文字列(エクセルのセルに有。タグ付き) <test>データ<text>データ</text></test> ・実現したい結果 <root> <text>テキスト<text> <test>データ<text>データ</text></test> </root>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

要素や属性を指定して格納する場合は
createelement、setAttribute
等で実装しています。

DOM のAPIを使用してXMLを生成されているということを述べられています.従って、このDOMの世界でやっている限りは「タグ付きテキストを別XMLに、ダイレクトにぶら下げる命令、手法は」ありません.ご自分でテキストを解析し、タグと判断できる範囲に対してcreateElementを行うしかないでしょう.

XSLTでやるのでしたら、disable-output-escaping="yes"を使って

<xsl:text disable-output-escaping="yes"><text>データ</text></xsl:text>

などと、簡単に実体参照の生成をエスケープできる(しかも出力では要素になる)のですが残念です.

投稿2016/11/15 03:59

tmakita

総合スコア69

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

macinspire

2016/11/15 13:19

コメントありがとうございます。 諦めがつきました。 手法がない場合の実装を練っておりましたので、そちらでトライしてみます。
tmakita

2016/11/16 00:28

macinspire様 すみません.次のようなメソッドがありました. https://msdn.microsoft.com/ja-jp/library/ms754585%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 これを使えば御指摘のタグ付きテキストから、DOMを構築できる可能性があります.以降はDOMの操作でcloneNode⇒appendChildなどでいけるかもしれません.(すみません.DOMは最近御無沙汰で、しかもVBAの世界なのでどこまで可能かわかりません)御参考になれば幸いです. 以上
macinspire

2017/01/01 23:34

大変遅くなりました。 最終的にご指摘のloadxmlにたどり着いて解決しておりました。 この方法でVBAでもいけます。 xmldoc.loadxml("<root><test/><root/>") コメントありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問