1

我正在将我的 InfoPath 2003 对象模型代码转换为 InfoPath 2007 托管代码,我想在表单加载事件 (FormEvents_Loading) 上将属性和 childNodes 添加到表单的一部分。我想更新以下部分:

我要为mstns:SpecificBook节点和一些子节点添加一个属性。结果应该是:



我的 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)

具体BookNode.AppendChild(newNode)

任何人都可以帮我转换上面使用管理代码的行吗?

4

1 回答 1

1

因为我可以创建一个新属性,因为 sampledata.xml 有一个默认值,尽管我的 Template.xml 没有;我无法设置该值,因为它是只读的。prereqsNode = navigator.SelectSingleNode (“//mstns:SpecificBook”, Me.NamespaceManager)

*错误“重复属性” prereqsNode.CreateAttribute("", "areLoaded", "", "true")

错误“只读”prereqsNode.SetValue("true")*

我决定创建一个新的 XmlDocument:

  • 创建一个新属性替换

  • 整个 mstns:SpecificBook 节点

我还使用 XmlDocument 创建子节点,将节点转换为导航器,然后附加子节点。

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)

specificBookNode.ReplaceSelf(newNode.OuterXml)

于 2010-03-02T16:57:32.507 回答