如何存储XML标记和检索数据

时间:2013-09-02 06:14:09

标签: asp.net xml vb.net

我很难理解这段代码,任何人都可以帮我解决这个问题吗? 如果我没错, StrStaffInfo 用于存储XML标记。

我想知道标签是如何存储在XML文件中的,以及如何访问这些标签?

<script runat="server">
Public StaffInfoXML as new xmlDocument

sub Page_Load(obj as object, e as eventargs)

    Dim StrStaffInfo, strConnXMLData, strConnStr, SpString as String
    Dim oStaffDAW as New DAWNET.DataAccess.XMLWrapper.DAW()
    Dim oConn as new ConnectionString.Access.DataBase.IO.ConnectionString

    ' Fetch the Connection String from Configuration File
    oConn.SetPath(MapPath(""))
    strConnStr = oConn.FetchConnectionString(strConnXMLData)


    SpString = "StaffInformationSelect '"& Decode(LOGONUSER.ToString) &"','"& Decode(CLIENTIP.ToString) &"','"& Decode(MACHINENAME.ToString) &"'"
    oStaffDAW.FetchXml(strConnStr, SpString, StrStaffInfo)

            StaffInfoXML.LoadXml(StrStaffInfo)



    if (StaffInfoXML.GetElementsByTagName("RECORD").Count = 0)
        Response.Redirect("Application.aspx")
        Response.End
    End if

end sub

TagName“记录”存储在哪里?我想要包含另一个Tag,并检查If条件。

2 个答案:

答案 0 :(得分:1)

请注意直接回答您的问题,但strStaffInfo是包含XML的字符串,并且正在使用以下行加载到XmlDocumentStaffInfoXML)中:

StaffInfoXML.LoadXml(StrStaffInfo)

标记RECORD位于文档树中的某个位置。 GetElementsByTagName返回文档中名称为“RECORD”的所有标记(节点)及其子节点中的XmlNodeList

如果您知道要查找的元素(标记)的名称,则可以再次调用GetElementsByName,然后检查您/那些元素的值。 If条件。

我还要看一下LINQ to XML(这是我解析XML的首选方法)。

答案 1 :(得分:1)

小心术语。标记只是由小于和大于字符分隔的文本。 元素具有开始和结束标记,并且可以在两者之间具有附加内容。元素是重要的。

代码调用StaffInformationSelect,它似乎是数据库中存储过程,产生XML结果。是的,StrStaffInfo应该将结果保存为包含XML的字符串。

然后将XML结果加载到StaffInfoXML对象中,该对象是XMLDocument的实例,即.NET XML DOM(文档对象模型)类。

然后,它正在查看XML文档是否有任何RECORD元素,如果没有,则重定向到另一个页面。如果文件看起来像这样:

<?xml version="1.0"?> <root> <RECORD></RECORD> <RECORD></RECORD> </root>

Count属性的值为2.

除了您在现有代码中看到的GetElementsByTagName方法外,请查看GetElementById,它会按唯一ID找到元素。

标签名称由StaffInformationSelect定义。它可能对应于数据库中的表名。

GetElementsByTagName将生成XmlNode个对象的集合,您可以迭代这些对象。如果要对文档中的某些元素进行复杂的搜索,请查看XPathDocument,或者新的XDocument,它允许您在XML文档上运行LINQ查询。

如果可以将调试器附加到此代码,请在调用LoadXML的行上设置断点,您应该在StrStaffInfo变量中看到XML文档。