InfoPath 2007 - добавление атрибута и дочерних узлов через управляемый код - PullRequest
1 голос
/ 01 марта 2010

Я преобразую свои коды объектной модели InfoPath 2003 в управляемый код InfoPath 2007. Я хочу добавить атрибут и дочерние узлы в раздел формы при событии загрузки формы (FormEvents_Loading). Я хочу обновить следующий раздел:

Я должен был добавить атрибут к mstns: SpecificBook узлу и нескольким дочерним узлам. Результат должен быть:



Код модели объекта My InfoPath 2003

Чтобы добавить и установить значения атрибута:

flag = TheXDocument.DOM.createAttribute («активный») 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)

Может кто-нибудь помочь мне преобразовать строку выше, используйте Управление кодом?

1 Ответ

1 голос
/ 02 марта 2010

Поскольку я мог создать новый атрибут, потому что в файле sampledata.xml было значение по умолчанию, хотя в моем файле Template.xml его нет; Я не мог установить это значение, потому что он только для чтения. prereqsNode = navigator.SelectSingleNode («// mstns: SpecificBook», Me.NamespaceManager)

* Ошибка «Дублирующийся атрибут» prereqsNode.CreateAttribute ("", "areLoaded", "", "true")

Ошибка «Только чтение» prereqsNode.SetValue ( "истина") *

Я решил создать новый XmlDocument:

  • создать новый атрибут вместо

  • все MSTNS: узел SpecificBook

Я также использовал XmlDocument для создания дочерних узлов, преобразования узла в навигатор и затем добавления дочерних узлов.

Dim doc As XmlDocument = Новый XmlDocument Dim newNode As XmlNode Dim activeAttrib As XmlAttribute

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

specificBookNode.ReplaceSelf (newNode.OuterXml)

...