0

我很难理解这段代码,有人可以帮我吗?如果我没记错的话,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“记录”存储在哪里?我想包含另一个标签,并检查 If 条件。

4

2 回答 2

1

请注意对您的问题的直接回答,但strStaffInfo它是带有 XML 的字符串,并且它被加载到具有以下行的XmlDocument( ) 中:StaffInfoXML

StaffInfoXML.LoadXml(StrStaffInfo)

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

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

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

于 2013-09-02T06:38:46.250 回答
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 文档。

于 2013-09-02T06:56:05.490 回答