1

InfoPath 2003 オブジェクト モデル コードを InfoPath 2007 マネージ コードに変換しています。属性と childNodes をフォーム ロード イベント (FormEvents_Loading) のフォームのセクションに追加したいと考えています。次のセクションを更新します。

mstns:SpecificBookノードといくつかの子ノードに属性を追加しました。結果は次のようになります。



My InfoPath 2003 オブジェクト モデル コード

属性値を追加および設定するには:

flag = TheXDocument.DOM.createAttribute("active") prereqsNode.attributes.setNamedItem(flagNode).text = "true"

newNode = doc.CreateNode(NodeTypeElemt, FromNamespacePrefix, "Book",FormNamespace)

        specificBookAttrib = newNode.OwnerDocument.CreateAttribute("BookId")
        specificBookIdAttrib.Value = “anybook”
        newNode.Attributes.Append(specificBookIdAttrib)

SpecificBookNode.AppendChild(newNode)

管理コードを使用して上記の行を変換するのを手伝ってくれる人はいますか?

4

1 に答える 1

1

私の Template.xml には何もありませんが、sampledata.xml にはデフォルト値があったため、新しい属性を作成できました。読み取り専用のため、その値を設定できませんでした。prereqsNode = navigator.SelectSingleNode (“//mstns:SpecificBook”, Me.NamespaceManager)

*エラー「属性が重複しています」 prereqsNode.CreateAttribute("", "areLoaded", "", "true")

エラー「読み取り専用」 prereqsNode.SetValue("true")*

新しい XmlDocument を作成することにしました。

  • 新しい属性を作成し、

  • mstns:SpecificBook ノード全体

また、XmlDocument を使用して childNode を作成し、ノードをナビゲーターに変換してから、childNode を追加しました。

Dim doc As XmlDocument = New XmlDocument Dim newNode As XmlNode Dim activeAttrib As XmlAttribute

activeAttrib = newNode.OwnerDocument.CreateAttribute("active") activeAttrib.Value = True newNode.Attributes.Append(activeAttrib)

特定のBookNode.ReplaceSelf(newNode.OuterXml)

于 2010-03-02T16:57:32.507 に答える