C# 通过Xpath搜索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绑定到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>
      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");
        }
}