用户可以使用动态标记从XML中提取数据

用户可以使用动态标记从XML中提取数据,xml,vb.net,string,tags,Xml,Vb.net,String,Tags,我正在编写一个简单的VB.net函数,用于从XML文件中提取某个标记。功能是: Public Function ExtractXMLValue(ByVal FilePath As String, ByVal XMLTag As String) As String Dim XMLDocument = XDocument.Load(FilePath) Dim Output As String Output = XMLDocument.<XMLTag&

我正在编写一个简单的VB.net函数,用于从XML文件中提取某个标记。功能是:

Public Function ExtractXMLValue(ByVal FilePath As String, ByVal XMLTag As String) As String        

    Dim XMLDocument = XDocument.Load(FilePath)
    Dim Output As String

    Output = XMLDocument.<XMLTag>.<ServerAddress>.Value
    Return Output
End Function
Public Function ExtractXMLValue(ByVal FilePath作为字符串,ByVal XMLTag作为字符串)作为字符串
Dim XMLDocument=XDocument.Load(文件路径)
将输出设置为字符串
输出=XMLDocument…值
返回输出
端函数
问题是输出为null,因为程序将XMLTag视为标记本身,而不是要解释的动态字符串。在名为“XMLTag”的XML文件中没有标记

我想调用我的函数,例如:ExtractXMLValue(文件名,“ServerAddress”)

这是我的XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<ConnectionSettings>
  <ServerAddress>192.0.0.1</ServerAddress>
  <ServerPort>30000</ServerPort>
</ConnectionSettings>

192.0.0.1
30000

谢谢你的帮助。

试试这个。这将在XML文档中找到XMLTag的第一个实例并返回它的值。如果您有多个标记,它只返回第一个标记。如果您没有标签,那么它将不返回任何内容

Output = XMLDocument.GetElementsByTagName(XMLTag)(0).InnerXml

谢谢你的回答。实际上,我正在尝试制作一些独立于XML文件中标记顺序的东西。这意味着,如果我的XML文件如下所示:
30000300013000230003192.0.0.1
它仍然可以工作。谢谢如果您使用上述代码将XMLTag设置为“ServerAddress”,它将在您的示例中找到“192.0.0.1”。如果它是“ServerPort”,它将返回“30000”。