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

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

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

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

Q&A

0回答

730閲覧

ExcelでXMLを作成する

Meet60g

総合スコア0

XML

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

0グッド

0クリップ

投稿2021/09/09 09:23

前提・実現したいこと

Exel 2016を使ってXMLファイルを作成したいです。
例として下の様なxmlファイルにどんどんaddUnitModelタグが追加されていくイメージです。

xml

1<?xml version = "1.0" encoding = "utf-8"?> 2<service xmlns="http://www.sample.com" name="human" userNmae="yamada" password="psswd"> 3 <addUnitModel> 4 <UnitName>Display</UnitName> 5 <Company>A-Campany</Company> 6 <UnitNumber>00-01</UnitNumber> 7 <PartsList> 8 <PartsCode>1111</PartsCode> 9 <PartsCode>2222</PartsCode> 10 <PartsCode>3333</PartsCode> 11 </PartsList> 12 </addUnitModel> 13 <addUnitModel> 14 <UnitName>Button</UnitName> 15 <Company>B-Company</Company> 16 <UnitNumber>00-02</UnitNumber> 17 <PartsList> 18 <PartsCode>4444</PartsCode> 19 </PartsList> 20 </addUnitModel> 21</service>

xml

1<?xml version = "1.0" encoding = "utf-8"?> 2<service xmlns="http://www.sample.com" name="human" userNmae="yamada" password="psswd"> 3 <addUnitModel> 4 <UnitName>Display</UnitName> 5 <Company>A-Campany</Company> 6 <UnitNumber>00-01</UnitNumber> 7 <PartsList> 8 <PartsCode>1111</PartsCode> 9 <PartsCode>2222</PartsCode> 10 <PartsCode>3333</PartsCode> 11 </PartsList> 12 </addUnitModel> 13 <addUnitModel> 14 <UnitName>Button</UnitName> 15 <Company>B-Company</Company> 16 <UnitNumber>00-02</UnitNumber> 17 <PartsList> 18 <PartsCode>4444</PartsCode> 19 </PartsList> 20 </addUnitModel> 21 <UnitName>LSI</UnitName> 22 <Company>C-Campany</Company> 23 <UnitNumber>00-03</UnitNumber> 24 <PartsList> 25 <PartsCode>5555</PartsCode> 26 </PartsList> 27 </addUnitModel> 28 <addUnitModel> 29 <UnitName>Connecter</UnitName> 30 <Company>C-Company</Company> 31 <UnitNumber>00-04</UnitNumber> 32 <PartsList></PartsList> 33 </addUnitModel> 34</service>

XML Schema定義 (XSD)を使ってxmlを作る事を試しました。
こんな風にしました。

<?xml version="1.0" encoding="utf-8"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.sample.com" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="service"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="addUnitModel"> <xs:complexType> <xs:sequence> <xs:element name="UnitName" type="xs:string" /> <xs:element name="Company" type="xs:string" /> <xs:element name="UnitNumber" type="xs:string" /> <xs:element name="PartsList"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="PartsCode" type="xs:unsignedInt" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="userNmae" type="xs:string" use="required" /> <xs:attribute name="password" type="xs:string" use="required" /> </xs:complexType> </xs:element> </xs:schema>

これをエクセルに読み込ませて追加したい情報を追加してエクスポートしました。

イメージ説明

補足情報(FW/ツールのバージョンなど)

リンク先

上記を見ると複雑なXMLエクスポートには対応していないとありました。
色々弄った結果、タグの中に複数のタグがあるのが問題の様です。

UnitとPartsの情報はバカみたいな量があるので出来ればエクセルで管理したいのですが、他の方法でも構いません。
簡単にXMLを作る方法はありますか?
こんな依頼があったらどうやって(どんなツールを使って)解決しますか?

キーワードだけでも問題ありません。ご回答いただければ嬉しいです。

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

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

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

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

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

Zuishin

2021/09/11 09:47

データソースが特にないなら手書きで。
tmakita

2021/09/14 08:24

PartsList/PartsCodeは個数可変なようですが、最大数とかは決められるのでしょうか??
Meet60g

2021/09/15 12:36

>tmakitaさん PartsCodeの最大数は決めておりません。 決め打ちで最大数を20に設定しようと考えています。
tmakita

2021/09/15 12:48

PartsCodeの最大数を20にする⇒セルを20個、空いていてもいいので準備する⇒しかしそれでもExcelの標準機能では階層的なXML出力は無理そう⇒ではローテクでCSVに落としてそれを決め打ちでXMLに変換、XMLからExcelにするときもCSVにしてから読み込み、なんていうソリューションでも採用可能なものでしょうか??
Meet60g

2021/09/26 15:59

返信が遅れて申し訳ありません。 その辺に関しましては、特に制限はございません。 階層的なXMLをCSVにはとても興味があります。Listが無いものに関して例えばNoneとしておいて、あるものはKeyワードを記入して、別ファイルでKeyワードを元にリスト内の項目を管理する感じでしょうか。
tmakita

2021/09/29 14:05

期待を持たせてすみません.XSDを拝見するに、name, userName, passwordもデータとして持たせる感じでしょうか?そうすると、XMLではルート要素の属性であるのに、CSVもExcelも各行に重複してこれらの項目が現れざるを得なくなります.でもこれって望まれる結果じゃないですよね??
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問