我正在尝试使用vb.net编辑XML文件。此XML文件用于miscrosoft outlook添加功能区。我希望能够编辑代码,以便用户可以添加按钮到我的插件(他们的版本)我有点新的VB和xml一般,我似乎无法找到如何做到这一点。这是我目前的问题。
我可以阅读和查找看起来像这样的文件。
<?xml version="1.0" encoding="UTF-8"?>
<customUI>
<ribbon>
<tabs>
<tab>
<group>
<button>
</button>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
但是一旦我添加&#34;元素?&#34;在节点内&lt;&gt;我似乎无法编辑。下面是我似乎无法弄清楚如何编辑的xml。
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
<ribbon>
<tabs>
<tab idMso="TabAddIns">
<group>
<button id="Add" label="AddNode" getImage="GetImage" onAction="RunAdd" visible="true" size="large" screentip="Add an XML file Node" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
这是我尝试过的 我尝试重写我的xml代码,因此&lt;&gt;中没有任何内容。除节点名称外。这导致我的按钮错误,我似乎无法解决。 2.我当前的vb.net代码如下所示
Dim MyXMLNode As XmlNode
MyXMLNode= MyXML.SelectSingleNode("/customUI/ribbon")
WriteLine("Hello World2")
If MyXMLNode IsNot Nothing Then
WriteLine("Hello World")
MyXMLNode.InnerText = "CreateTeset"
Else
WriteLine("Hello World3")
'Do whatever
End If ' Save the Xml.
此代码用于编辑第一个XML而不是第二个。
基于写作线,我知道问题在于这一行,因为Hello World不是输出,而是Hello World2和3。
MyXMLNode= MyXML.SelectSingleNode("/customUI/ribbon")
我尝试的代码是这样的(注意我不确定下面的代码是否正确,因为我找不到我得到它的页面来确认。但是当我使用它时应该是正确的。< / p>
MyXMLNode= MyXML.SelectSingleNode("/customUI/ribbon['element']")
我已经搜索过,但我找不到任何人试图像这样阅读XML。我也愿意重写XML。任何帮助表示赞赏。
这也是我想要做的。我希望能够添加/删除/编辑按钮组和选项卡。一个例子是我想更新一个按钮的标签来自&#34;某些东西&#34;到了&#34;别的东西&#34;
编辑: 如何选择customUI节点来编辑xmlns,例如
这是我试过的
Dim MyXMLNode As XmlNode = MyXML.SelectSingleNode("/customUI")
Dim strValue As String = MyXMLNode.Attributes("xmlns").Value 'retursn "Add"
WriteLine("Hello World2" & strValue)
If MyXMLNode IsNot Nothing Then
WriteLine("Hello World")
MyXMLNode.Attributes("xmlns").Value = "CreateTest"
Else
WriteLine("Hello World3")
'Do whatever
End If ' Save the Xml.
我在第二条昏暗线处出错,因为第一条暗线没有做任何事情(IE它返回一个空节点)
答案 0 :(得分:1)
有很简单的方法可以做到这一点。 阅读属性:
Dim strValue as string = MyXMLNode.Attributes("id").Value 'retursn "Add"
更改属性:
MyXMLNode.Attributes("id").Value = "My New Value"
添加新按钮:
MyXMLNode= MyXMLNode.SelectSingleNode("/customUI/ribbon/tabs/tab[idMso='TabAddIns']/group")
'Create a new node
XmlElement elem = MyXMLNode.CreateElement("button");
'Create Attribute
XmlAttribute typeAttr = xmlDoc.CreateAttribute("id");
typeAttr.Value = "Add";
elem.Attributes.Append(typeAttr);
'Add more attributes here
'Add the node to the document.
MyXMLNode.AppendChild(elem);