vb.net读取包含<>中元素的xml文件

时间:2017-03-03 16:17:01

标签: xml vb.net vsto

我正在尝试使用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它返回一个空节点)

1 个答案:

答案 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);