VB2005の初心者です。
XMLのテキストデータを逆シリアライズして、XMLデータにして、最終的にDB(SQLServer)に登録しようとしています。
XMLのテキストデータの中身によって、うまくシリアライズできない部分があって困っています。
下記はシリアライズできましたが、要素、Idの1234567が取得できません。
<?xml version="1.0" encoding="UTF-8"?>
<Mml>
<MmlHeader>
<CreatorInfo>
<PersonalizedInfo>
<Id type="facility" tableId="MML0024">
1234567
</Id>
</PersonalizedInfo>
</CreatorInfo>
</MmlHeader>
</Mml>
下記が、シリアライズ化対象クラスのソースです。
Imports System.Xml.Serialization
''' <summary>シリアライズ化対象クラス(@@ODH)</summary>
<Serializable()> _
<XmlRoot("Mml")> _
Public Class Serializable_Mml
<XmlElement("MmlHeader")> _
Public MmlHeader() As MmlHeader
Public Sub New()
End Sub
End Class
Public Class MmlHeader
<XmlElement("CreatorInfo")> _
Public CreatorInfo() As CreatorInfo
End Class
Public Class CreatorInfo
<XmlElement("PersonalizedInfo")> _
Public PersonalizedInfo() As PersonalizedInfo
End Class
Public Class PersonalizedInfo
<XmlElement("Id")> _
Public Id() As Id
End Class
Public Class Id
<XmlAttributeAttribute("type")> Public type As String
<XmlAttributeAttribute("tableId")> Public tableId As String
Public Id As String
End Class
下記で属性のtypeは取得できました。
objclass.MmlHeader(0).CreatorInfo(0).PersonalizedInfo(0).Id(0).type
しかし下記では、Idは中身が空です。
objclass.MmlHeader(0).CreatorInfo(0).PersonalizedInfo(0).Id(0).Id
どうすれば取得できるのでしょうか。
また、下記はシリアライズさえもできません。
ネームスペースを使ったタグ名の場合、クラスで(?)どのように定義すれば良いのでしょうか。
<?xml version="1.0" encoding="UTF-8"?>
<Mml version="2.3" createDate="2007-10-25T15:29:42" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:mmlPsi="http://www.medxml.net/MML/SharedComponent/Common … >
<MmlHeader>
<mmlPsi:CreatorInfo>
<mmlPsi:PersonalizedInfo>
<mmlPsi:Id mmlPsi:type="facility" mmlPsi:tableId="MML0024">
1234567
</mmlPsi:Id>
</mmlPsi:PersonalizedInfo>
</mmlPsi:CreatorInfo>
</MmlHeader>
</Mml>
何かヒントでも良いので、アドバイスをいただければ幸いです。
よろしくお願い致します。
No.1
- 回答日時:
Idに関しては Class Idの記述で
<XmlText()> Public Id as String
といった具合にすれば良いようです
Namespaceに関しては Namespace適用するさいしょのエレメントの XmlElement属性に引数Namespaceを与えるといいようです
今回のケースなら Class MmlHeaderのCreatorInfoの属性を
<XmlElemnt("CreatorInfo",Namespace="http://www.medxml.net/MML/SharedComponent/Common …
にした 別の変数を用意します たとえば CreatorInfo1()など
といった具合です
ただこの方法だと typeやtableIdが取得できませんでした Idは取得できましたけど
No.2
- 回答日時:
訂正 Namespaceは名前つき引数なので := でないといけませんでした
先ほどはうまくいったんですが再度テストしてみるとどうもダメみたいです
MmlHeaderの解析でコケちゃうみたいです m(__)m
No.3ベストアンサー
- 回答日時:
何度もすみません m(__)m
#1の方法で CreatorInfo以下が取得できますが
Idクラスの属性typeやtableIdに同じようにNamespaceパラメータをつけてしまうとXmlSerializerの初期化の段階でエラーになってしまうようです
Idクラスの属性はうまく取得できないようです
と言うか Namespaceのプレフィックスが付いた属性がうまくないのかも
何度もアドバイスありがとうございます。
Namespaceパラメータなどがある場合は、シリアライズはできなさそうですね。
XmlNodeListで項目を解析しようと思います。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- Java java final 1 2022/06/10 22:49
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Java リレーションエンティティクラスとは何ですか? 2 2023/02/10 00:02
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- その他(プログラミング・Web制作) seleniumbasic chrome操作について 1 2023/03/29 15:40
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba 実数および実数タイプの変...
-
Excelのマクロについて教えてく...
-
VBA レジストリの値の読み方に...
-
Excel VBA 定義されたプロージ...
-
Excel マクロについての相談
-
エクセルVBAについて
-
Vba SelStart、SelLen教えてく...
-
エクセルの合計を自動で表示さ...
-
Excelのマクロでワードのテキス...
-
Excelについて
-
2つのマクロでチェックボックス...
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
VBAの質問になります Userform内で
-
VBA listBoxから
-
VBAで各列の"+"と"o"の合計数を...
-
VBA初心者 Ctrl+での操作、ボタ...
-
VBA 複数条件の分岐処理の上手...
-
VB.net(VB)で、フォームにExcel...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 定義されたプロージ...
-
Excel-VBAのmsgBox()の不思議
-
【VBA】マクロの入ったファイル...
-
VBA 複数条件の分岐処理の上手...
-
現在のブックを閉じないで、マ...
-
VBAで各列の"+"と"o"の合計数を...
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ユーザーフォームに別シートか...
-
エクセルのマクロについて教え...
-
ExcelVBA シート名を複数セルか...
-
エクセルのマクロについて教え...
-
VBA listBoxから
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
おすすめ情報