0

このコードを理解するのに苦労しています。誰か助けてくれませんか? 私が間違っていなければ、XML タグを格納するためにStrStaffInfoが使用されます。

タグが 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

用語には注意してください。タグは、小なり文字と大なり文字で区切られた単なるテキストです。要素には開始タグと終了タグがあり、2 つの間に追加のコンテンツがある場合があります。大事なのは要素です。

コードは を呼び出しStaffInformationSelectています。これは、XML 結果を生成するデータベース内のストアド プロシージャのようです。はい、StrStaffInfoXML を含む文字列として結果を保持する必要があります。

XML の結果は、.NET XML DOM (ドキュメント オブジェクト モデル) クラスであるXMLDocumentStaffInfoXMLのインスタンスであるオブジェクトに読み込まれます。

次に、XML ドキュメントに RECORD 要素があるかどうかを確認し、ない場合は別のページにリダイレクトします。ドキュメントが次のようになっている場合:

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

Count プロパティの値は 2 になります。

既存のコードにあるメソッドとは別に、GetElementByIdGetElementsByTagNameを確認してください。これは、一意の ID で要素を見つけます。

タグ名は によって定義されStaffInformationSelectます。データベース内のテーブル名に対応している場合があります。

GetElementsByTagNameオブジェクトのコレクションが生成さXmlNodeれ、それを反復処理できます。ドキュメント内のいくつかの要素に対して複雑な検索を行いたい場合は、XPathDocument、またはおそらく新しいXDocumentを調べてください。これにより、XML ドキュメントに対して LINQ クエリを実行できます。

このコードにデバッガーを接続できる場合は、LoadXML を呼び出す行にブレークポイントを設定すると、StrStaffInfo 変数に XML ドキュメントが表示されます。

于 2013-09-02T06:56:05.490 に答える
1

質問に対する直接の回答に注意してください。ただし、XML を含む文字列であり、次の行で( )strStaffInfoに読み込まれています。XmlDocumentStaffInfoXML

StaffInfoXML.LoadXml(StrStaffInfo)

タグRECORDはドキュメント ツリーのどこかにあります。 ドキュメント内の「RECORD」という名前を持つすべてのタグ (ノード) とその子の をGetElementsByTagName返します。XmlNodeList

探している要素 (タグ) の名前がわかっている場合は、もう一度 を呼び出してGetElementsByName、条件のその要素の値を確認できますIf

また、LINQ to XML も検討します (これは、XML を解析するための私の推奨方法です)。

于 2013-09-02T06:38:46.250 に答える