【问题标题】:User a dynamic tag to extract data from XML使用动态标签从 XML 中提取数据
【发布时间】:2013-07-31 17:13:36
【问题描述】:

我正在编写一个简单的 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

问题在于输出为空,因为程序将 XMLTag 视为标记本身,而不是要解释的动态字符串。并且 XML 文件中没有名为“XMLTag”的标记。

我想调用我的函数,例如:ExtractXMLValue(FileName, "ServerAddress")

这是我的 XML 文件:

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

感谢您的帮助。

【问题讨论】:

    标签: xml vb.net string tags


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。实际上,我正在尝试制作一些独立于 XML 文件中标签顺序的东西。这意味着,如果我的 XML 文件如下:&lt;code&gt;&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;ConnectionSettings&gt; &lt;ServerPort&gt;30000&lt;/ServerPort&gt; &lt;ServerPort&gt;30001&lt;/ServerPort&gt; &lt;ServerPort&gt;30002&lt;/ServerPort&gt; &lt;ServerPort&gt;30003&lt;/ServerPort&gt; &lt;ServerAddress&gt;192.0.0.1&lt;/ServerAddress&gt; &lt;/ConnectionSettings&gt;&lt;code/&gt; 它仍然可以工作。谢谢
    • 如果您使用上述代码将 XMLTag 设置为“ServerAddress”,它将在您的示例中找到“192.0.0.1”。如果是“ServerPort”,它将返回“30000”。
    猜你喜欢
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 1970-01-01
    相关资源
    最近更新 更多