0

別のドロップダウン リストの選択に基づいて特定の値をロードする必要があるドロップダウン リストがあります。setを使用して sql から実行しようとしましDISTINCTたが、適切な値が返されません。

SELECT DISTINCT RMRP_Label, RMRP_Type FROM Table 
WHERE RMRP_Type IN (" + search + ")

何らかの理由で DropDownList.SelectedItem.Text 値を変更し続けます...そのため、XML ドキュメントを作成しました。

<p>

 <param Name = "Intake_ID"
 Value = "!hssCombo"></param>  

 <param Name = "Office_ID"
 Value = "#hssCombo"></param>  

 <param Name = "sub_obj"
 Value = "%hssCombo"></param>  

 <param Name = "Svc_ID"
 Value = "!hssCombo"></param>

たとえば、必要なのは、ドロップダウンにName値を入力することです。このxmlから、selectステートメントのどこか、Value = "#hssCombo"またはむしろどこかValue = search

4

1 に答える 1

0

次の XPath を使用して値を選択できます。

//p/param[@Value='#hssCombo']/@名前

XPath は XML 文書を照会するための標準的な方法であるため、習得する価値があります。.NET や XSLT など、ほとんどの XML ツールは XPath をサポートしています。パスの各部分の意味は次のとおりです。

  • //p-pは、探している要素の名前です。二重スラッシュは、要素がドキュメントのどこにでも出現できることを示します。ルートにある要素のみを含めたい場合はp、単一のスラッシュを使用して絶対パスにすることができます。
  • /param- 要素の下のサブ要素を指定しpます
  • [@Value='#hssCombo']- 条件を指定します。//p/param条件に一致する要素のみが含まれます。この場合、条件Valueは、要素の属性がparam等しい必要があることを指定します#hssCombo@記号は、サブ要素名ではなく属性であることを示しますValue
  • /@NameName- 要素の属性の値に関心があることを指定しparamます。

クラスを使用している場合は、およびメソッドXmlDocumentを使用して XPath でノードを選択できます。例えば:SelectSingleNodeSelectNodes

Dim node As XmlNode = doc.SelectSingleNode("//p/param[@Value='#hssCombo']/@Name")
If node IsNot Nothing Then
    Dim name As String = node.InnerText
End If

明らかに、SQL の例と同じように、次のように単なる文字列であるため、XPath を動的に構築できます。

doc.SelectSingleNode("//p/param[@Value='" & search & "']/@Name")

クラスを使用している場合は、、 、メソッドXDocumentを使用して XPath で選択することもできます。XPathEvaluateXPathSelectElementXPathSelectElements

于 2013-04-04T14:56:19.590 に答える