[英]How do I use XPath to get the value of an attribute in c#?
我想傳遞一個xpath查詢並返回我發現的值。 我正在專門尋找屬性的值。
_query = "//@RequestType";
我可以將節點取回,但是我不確定如何從中獲取字符串值。 我想查詢以下xml的type
屬性並獲取“ xpath”。
如果我可以替換查詢並從nice中獲得值“ yes”,那也很好。
<?xml version="1.0" ?>
<test type="xpath">
<nice>yes</nice>
</test>
C#
public string Locate(string message)
{
using (var stream = new MemoryStream(Encoding.GetBytes(message)))
{
var doc = new XPathDocument(stream);
var nav = doc.CreateNavigator();
var result = nav.Select(_query);
if (result != null)
{
return result
}
}
}
我的xPath充其量是軟弱的,但是請嘗試以下操作:
var doc = new XPathDocument(stream);
var nav = doc.CreateNavigator();
foreach (XPathNavigator test in nav.Select("test"))
{
string type = test.SelectSingleNode("@type").Value;
string nice = test.SelectSingleNode("nice").Value;
Console.WriteLine(string.Format("Type: {0} - Nice: {1}", type, nice));
}
如果您要在查詢中重新獲得“測試”節點,並且它包含一個名為“ nice”的子節點,則需要從父“測試”節點中選擇“ nice”子節點並返回其InnerText以獲得字符串“是”。
我不確定是否能回答您的問題,因為我認為我沒有完全按照您的要求進行,但希望能對您有所幫助
XPathNavigator具有Value屬性,該屬性將以字符串形式返回當前節點的值。 如果您已經知道數據類型,則也可以使用ValueAsBoolean,ValueAsDateTime等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.