C# 通过Xpath搜索Xml节点列表,并在嵌套的GridView中绑定
我只想将xml绑定到gridview中的哪个多个子节点像这样C# 通过Xpath搜索Xml节点列表,并在嵌套的GridView中绑定,c#,asp.net,xml,xpath,xmldocument,C#,Asp.net,Xml,Xpath,Xmldocument,我只想将xml绑定到gridview中的哪个多个子节点像这样 <?xml version="1.0" encoding="utf-8" ?> <Products> <Product> <SKU>DL-DL4002</SKU> <Name>Leopard Print Strapless Corset Top with G-string</Name> <ImagePath4>
<?xml version="1.0" encoding="utf-8" ?>
<Products>
<Product>
<SKU>DL-DL4002</SKU>
<Name>Leopard Print Strapless Corset Top with G-string</Name>
<ImagePath4>
http://da.com/images/product/large/DL-DL4002_4_.jpg
</ImagePath4>
<Variants>
<Variant>
<Size>S</Size>
<Cost>25.28</Cost>
<MSRP>57.45</MSRP>
<Avialability>in stock</Avialability>
<Weight>0.6</Weight>
</Variant>
<Variant>
<Size>M</Size>
<Cost>25.28</Cost>
<MSRP>57.45</MSRP>
<Avialability>in stock</Avialability>
<Weight>0.6</Weight>
</Variant>
<Variant>
<Size>L</Size>
<Cost>25.28</Cost>
<MSRP>57.45</MSRP>
<Avialability>in stock</Avialability>
<Weight>0.6</Weight>
</Variant>
<Variant>
<Size>XL</Size>
<Cost>25.28</Cost>
<MSRP>57.45</MSRP>
<Avialability>out of stock</Avialability>
<Weight>0.6</Weight>
</Variant>
</Variants>
</Product>
<Product>
<SKU>DL-DL4003</SKU>
<Name>Designer Purple Brocade Party Corset Top</Name>
<ImagePath4>
http://da.com/images/product/large/DL-DL4003_4_.jpg
</ImagePath4>
<Variants>
<Variant>
<Size>S</Size>
<Cost>23.1</Cost>
<MSRP>52.5</MSRP>
<Avialability>in stock</Avialability>
<Weight>0.6</Weight>
</Variant>
<Variant>
<Size>M</Size>
<Cost>23.1</Cost>
<MSRP>52.5</MSRP>
<Avialability>in stock</Avialability>
<Weight>0.6</Weight>
</Variant>
<Variant>
<Size>L</Size>
<Cost>23.1</Cost>
<MSRP>52.5</MSRP>
<Avialability>in stock</Avialability>
<Weight>0.6</Weight>
</Variant>
<Variant>
<Size>XL</Size>
<Cost>23.1</Cost>
<MSRP>52.5</MSRP>
<Avialability>in stock</Avialability>
<Weight>0.6</Weight>
</Variant>
</Variants>
</Product>
</Products>
没关系,但当我在gridview中绑定嵌套的gridview以获取行数据绑定上的变量时
就这样,
protected void GridXML_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
GridView gv = (GridView)e.Row.FindControl("gvChildGrid");
DataTable dt = new DataTable();
XmlNodeList nodeList = xmldoc.DocumentElement.SelectNodes("/Products/Product/Variants/Variant");
}
}
它将为对象(即产品SkU ID=DL-DL4000和DL-DL4002)选择所有变体节点,但我只想逐个选择一个对象
请提供帮助基本上,您可以使用xpath谓词(
[]
)来筛选特定条件的元素。例如:
string sku=“DL-DL4002”;
stringxpath=string.Format(“/Products/Product[SKU='{0}']/Variants/Variant”,SKU);
XmlNodeList nodeList=xmldoc.DocumentElement
.SelectNodes(xpath);
上述示例将从产品
返回变量
,且SKU
等于“DL-DL4002”
。我不熟悉ASP.NET gridview,但您应该能够从e.Row
参数中获取当前SKU
值
protected void GridXML_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
GridView gv = (GridView)e.Row.FindControl("gvChildGrid");
DataTable dt = new DataTable();
XmlNodeList nodeList = xmldoc.DocumentElement.SelectNodes("/Products/Product/Variants/Variant");
}
}