2012-05-09 23 views
0

こんにちは、私はwhihcからxmlファイルを持っています。 SO、これは私のxmlファイルである:結果はXPATHの記述式

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

だろう

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

しかし、私は唯一のものを選択したために望んでいた:

  <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> 

この部分を選択するには、私はこの表現を使用しました属性がtrueです。しかし、私はそれを行う方法を理解することができませんでした。手伝ってくれませんか?

+0

'//項目[@Text = 'お客様']'すべきである[選択] = '真の' @]トリックを行う – Kris

答えて

0

これが正しい方法です:

XmlDataSource1.XPath = "//Item[@Text ='Customers']/Group/Item[@Select = 'true']"; 
2

私はこれを正しく覚えていませんが、これを行う方法だと思います。

XmlDataSource1.XPath = "//Item[@Text ='Customers']/Group[/Item/@Select='true']"; 
+0

"// Item [@Text = 'Customers'] /グループ/ Item [@ Select = 'true']"; これはうまくいく.......ちょっとした改造...ありがとう – Sayamima

+0

Np ..正しい方法を投稿してくれてありがとう。私はそれを覚えていなかった – Sandbeck

0

XPATHがXPATHあるので、私は私のmac気圧に便利なC#コンパイラを持っていないとして、私はPHPでの例を働いてきました。中

パスステートメント"//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')); 
}