晚安:
我正在制作一个ribbon,当我创建节点根和名称空间时,我会像atribute一样放置它。它的下一个节点在blanket 中重写命名空间
Code:
Private Sub crearRibbon()
Dim RibbonXml As DOMDocument60
Dim objRaizElem As IXMLDOMElement
Dim objRibbonElem As IXMLDOMElement
Dim objPestana As IXMLDOMElement
Dim objPestanas As IXMLDOMElement
Dim objGrupo As IXMLDOMElement
Dim objControl As IXMLDOMElement
Dim objRaizAtt As IXMLDOMAttribute
Dim objRibbonAtt As IXMLDOMAttribute
Dim objPestanaAtt As IXMLDOMAttribute
Dim objGrupoAtt As IXMLDOMAttribute
Dim objControlAtt As IXMLDOMAttribute
Dim strRibbon As String
Dim x As String
Dim oNode As MSXML2.IXMLDOMElement
Set RibbonXml = New DOMDocument60
'Raiz
Set objRaizElem = RibbonXml.createElement("customUI")
RibbonXml.appendChild objRaizElem
Set objRaizAtt = RibbonXml.createAttribute("xmlns")
objRaizAtt.Text = ("http://schemas.microsoft.com/office/2006/01/customui")
objRaizElem.setAttributeNode objRaizAtt
'Ribbon
Set objRibbonElem = RibbonXml.createElement("ribbon")
objRaizElem.appendChild objRibbonElem
Set objRibbonAtt = RibbonXml.createAttribute("startFromScratch")
objRibbonAtt.Text = ("True")
objRibbonElem.setAttributeNode objRibbonAtt
Set oNode = RibbonXml.selectSingleNode("//ribbon")
'Set oNode = RibbonXml.getElementsByTagName("/customUI/ribbon/[xmlns]")
'oNode.removeAttribute ("xmlns")
oNode.Attributes.removeNamedItem "xmlns"
'Pestaña
Set objPestana = RibbonXml.createElement("tabs")
objRibbonElem.appendChild objPestana
'Pestañas
Set objPestanas = RibbonXml.createElement("tab")
objPestana.appendChild objPestanas
Set objPestanaAtt = RibbonXml.createAttribute("id")
objPestanaAtt.Text = ("1")
objPestanas.setAttributeNode objPestanaAtt
Set objPestanaAtt = RibbonXml.createAttribute("label")
objPestanaAtt.Text = ("A Custom Tab")
objPestanas.setAttributeNode objPestanaAtt
Set objPestanaAtt = RibbonXml.createAttribute("visible")
objPestanaAtt.Text = ("true")
objPestanas.setAttributeNode objPestanaAtt
'Grupos
Set objGrupo = RibbonXml.createElement("group")
objPestanas.appendChild objGrupo
Set objGrupoAtt = RibbonXml.createAttribute("id")
objGrupoAtt.Text = ("dbCustomGroup")
objGrupo.setAttributeNode objGrupoAtt
Set objGrupoAtt = RibbonXml.createAttribute("label")
objGrupoAtt.Text = ("A Custom Group")
objGrupo.setAttributeNode objGrupoAtt
'Control
Set objControl = RibbonXml.createElement("control")
objGrupo.appendChild objControl
Set objControlAtt = RibbonXml.createAttribute("idMso")
objControlAtt.Text = ("Paste")
objControl.setAttributeNode objControlAtt
Set objControlAtt = RibbonXml.createAttribute("label")
objControlAtt.Text = ("Built-in Paste")
objControl.setAttributeNode objControlAtt
Set objControlAtt = RibbonXml.createAttribute("enabled")
objControlAtt.Text = ("true")
objControl.setAttributeNode objControlAtt
RibbonXml.Save ("miRibbon1.xml")
结束子
我的输出
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon xmlns="" startFromScratch="False">
<tabs>
<tab id="1" label="A Custom Tab" visible="true">
<group id="dbCustomGroup" label="A Custom Group">
<control idMso="Paste" label="Built-in Paste" enabled="true"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
And ribbon xmlns=""
它只能得到带状
感谢
已经解决了消除空间xmlns="而不是使用createElement的问题,请使用CreateNode来设置命名空间。
现在:
Set objPestanas = RibbonXml.createNode(1, "tab", "http://schemas.microsoft.com/office/2006/01/customui")
之前:
Set objPestanas = RibbonXml.createElement("tab")
全部满:
Private Sub crearRibbon()
Dim RibbonXml As DOMDocument60
Dim objRaizElem As IXMLDOMElement
Dim objRibbonElem As IXMLDOMElement
Dim objPestana As IXMLDOMElement
Dim objPestanas As IXMLDOMElement
Dim objGrupo As IXMLDOMElement
Dim objControl As IXMLDOMElement
Dim objRaizAtt As IXMLDOMAttribute
Dim objRibbonAtt As IXMLDOMAttribute
Dim objPestanaAtt As IXMLDOMAttribute
Dim objGrupoAtt As IXMLDOMAttribute
Dim objControlAtt As IXMLDOMAttribute
Dim strRibbon As String
Set RibbonXml = New DOMDocument60
'Raiz
Set objRaizElem = RibbonXml.createNode(1, "customUI", "http://schemas.microsoft.com/office/2006/01/customui")
RibbonXml.appendChild objRaizElem
'Ribbon
Set objRibbonElem = RibbonXml.createNode(1, "ribbons", "http://schemas.microsoft.com/office/2006/01/customui")
objRaizElem.appendChild objRibbonElem
Set objRibbonAtt = RibbonXml.createAttribute("startFromScratch")
objRibbonAtt.Text = ("True")
objRibbonElem.setAttributeNode objRibbonAtt
'Pestaña
Set objPestana = RibbonXml.createNode(1, "tabs", "http://schemas.microsoft.com/office/2006/01/customui")
objRibbonElem.appendChild objPestana
'Pestañas
Set objPestanas = RibbonXml.createNode(1, "tab", "http://schemas.microsoft.com/office/2006/01/customui")
Set objPestanas = RibbonXml.createElement("tab")
objPestana.appendChild objPestanas
Set objPestanaAtt = RibbonXml.createAttribute("id")
objPestanaAtt.Text = ("1")
objPestanas.setAttributeNode objPestanaAtt
Set objPestanaAtt = RibbonXml.createAttribute("label")
objPestanaAtt.Text = ("A Custom Tab")
objPestanas.setAttributeNode objPestanaAtt
Set objPestanaAtt = RibbonXml.createAttribute("visible")
objPestanaAtt.Text = ("true")
objPestanas.setAttributeNode objPestanaAtt
'Grupos
Set objGrupo = RibbonXml.createNode(1, "group", "http://schemas.microsoft.com/office/2006/01/customui")
'Set objGrupo = RibbonXml.createElement("group")
objPestanas.appendChild objGrupo
Set objGrupoAtt = RibbonXml.createAttribute("id")
objGrupoAtt.Text = ("dbCustomGroup")
objGrupo.setAttributeNode objGrupoAtt
Set objGrupoAtt = RibbonXml.createAttribute("label")
objGrupoAtt.Text = ("A Custom Group")
objGrupo.setAttributeNode objGrupoAtt
'Control
Set objControl = RibbonXml.createNode(1, "control", "http://schemas.microsoft.com/office/2006/01/customui")
'Set objControl = RibbonXml.createElement("control")
objGrupo.appendChild objControl
Set objControlAtt = RibbonXml.createAttribute("idMso")
objControlAtt.Text = ("Paste")
objControl.setAttributeNode objControlAtt
Set objControlAtt = RibbonXml.createAttribute("label")
objControlAtt.Text = ("Built-in Paste")
objControl.setAttributeNode objControlAtt
Set objControlAtt = RibbonXml.createAttribute("enabled")
objControlAtt.Text = ("true")
objControl.setAttributeNode objControlAtt
RibbonXml.Save ("miRibbon1.xml")
结束子
感谢所有