0

こんにちは私は私がその一部を持ちたいと思っているwhihcからのxmlファイルを持っています。だから、これは私のxmlファイルです:

           <Item Text="Reports" Navigateurl ="Reports/Default.aspx">
  <Group>
    <Item Text="Customers" NavigateUrl="Reports/Customers/Default.aspx" Select="true">
      <Group>
        <Item Text="Customers" NavigateUrl="Reports/Customers/CustomerList.aspx" 
              Select="true"   />
        <Item Text="Customer Products" 
                    NavigateUrl="Reports/Customers/CustomersProducts.aspx" Select="true" />
        <Item Text="Customer Measurements" 
           NavigateUrl="Reports/Customers/CustomerLocationMeasurements.aspx" 
                Select="true"  />
        <Item Text="Customer Groups" NavigateUrl="Reports/Customers/CustomerGroups.aspx" />
        <Item Text="Customer Outages"  
             NavigateUrl="Reports/Customers/CustomerOutages.aspx" Select="true"/>
      </Group>
    </Item>

この部分を選択するために、私はこの式を使用しました:

        XmlDataSource XmlDataSource1 = new XmlDataSource();
        XmlDataSource1.DataFile = "~/Menu.xml";
        XmlDataSource1.XPath = "//Item[@Text ='Customers']/Group";
        XmlDataSource1.DataBind();

結果は次のようになります

     Group
       Customers
       CustomerProducts
       ..........

しかし、select属性がtrueであるものだけが必要でした。しかし、私はそれを行う方法を理解することができませんでした。手伝ってくれませんか?

4

3 に答える 3

2

これを正しく覚えているかどうかはわかりませんが、これがその方法だと思います。

XmlDataSource1.XPath = "//Item[@Text ='Customers']/Group[/Item/@Select='true']";
于 2012-05-09T12:54:31.910 に答える
0

これは正しい方法です:

XmlDataSource1.XPath = "//Item[@Text ='Customers']/Group/Item[@Select = 'true']";
于 2012-05-09T13:06:54.057 に答える
0

XPATHはXPATHであるため、mac atmにac#コンパイラーがないため、phpで例を作成しました。

pathステートメントの"//Item[@Text ='Customers'][@Select='true']"結果は次のようになります。

Reports/Customers/Default.aspx
Reports/Customers/CustomerList.aspx

サンプルコード:

<?php

$xml = <<<XML
<Item Text="Reports" Navigateurl ="Reports/Default.aspx">
    <Group>
        <Item Text="Customers" NavigateUrl="Reports/Customers/Default.aspx" Select="true">
            <Group>
                <Item Text="Customers" NavigateUrl="Reports/Customers/CustomerList.aspx" Select="true"   />
                <Item Text="Customer Products" NavigateUrl="Reports/Customers/CustomersProducts.aspx" Select="true" />
                <Item Text="Customer Measurements" NavigateUrl="Reports/Customers/CustomerLocationMeasurements.aspx" Select="true"  />
                <Item Text="Customer Groups" NavigateUrl="Reports/Customers/CustomerGroups.aspx" />
                <Item Text="Customer Outages" NavigateUrl="Reports/Customers/CustomerOutages.aspx" Select="true"/>
            </Group>
        </Item>
    </Group>
</Item>
XML;

$doc = new DOMDocument();
$doc->loadXML($xml);
$xpath = new DOMXPath($doc);
$list = $xpath->query("//Item[@Text ='Customers'][@Select='true']");
foreach($list as $item)
{
    printf("%s\n", $item->getAttribute('NavigateUrl'));
}
于 2012-05-09T13:08:38.173 に答える