1

以下は、値を使用して親ノードを取得するための XML ファイルと関数です。しかし、私は親ノードを取得することに感銘を受けました。

値 133 が関数に渡されると「firstnode」が返され、124 が関数に渡されると「secondnode」が返されます。

これどうやってするの?vb.net を使用していますが、C# も使用できます。

私のXMLファイル:

<sample>
    <firstnode>
        <id>133</id>
    </firstnode>
    <secondnode>
        <id>124</id>
    </secondnode>
</sample>

vb.net の私の機能:

Public Shared Function Get_NodeName_by_ID(ByVal ID As String) As String
    Dim value As String = "" 
    Dim strPath = HttpContext.Current.Server.MapPath("~/" + ConfigurationManager.AppSettings("app_settings").ToString())
    Dim doc As New XmlDocument()
    doc.Load(strPath) 

    Return value
End Function
4

3 に答える 3

3

XPath は、必要に応じて XML ドキュメントを操作する機能を提供します。これを行うには、以下の XPath 式を使用します。申し訳ありませんが、私のコードは C# にあるため、vb に変換する必要があります。

XPath 式: sample/*[id=133]

C# コード:

//Load FileXML
XmlDocument objFileXML = new XmlDocument();

objFileXML .Load(sFilePath);

//For selecting nodes having given value
XmlNodeList lstNodes = objFileXML .SelectNodes("sample/*[id=133]");

注: 動的に値を入れたい場合は、任意の変数を入れることができます。それはちょうどあなたのvbコードにあります。これがうまくいくことを願っています。

于 2012-12-19T04:30:14.910 に答える
1

私にとってこのソリューションワーカー。

 Dim strPath = HttpContext.Current.Server.MapPath("~/" + ConfigurationManager.AppSettings("settings").ToString())
            Dim doc As New XmlDocument()
            doc.Load(strPath)

        Dim ParentNode As XmlNodeList = doc.GetElementsByTagName("id")
        For Each node As XmlNode In ParentNode 
            If (ID.Equals(node.ChildNodes(0).Value)) Then
                value = node.ParentNode.Name.ToString()
            End If 
        Next
于 2012-12-19T08:33:51.693 に答える