2012-03-27 61 views
0
正道

是否有人知道正確的命令/路徑來獲得 IDENTshortTitle 而一個字符串與一個「/」(注意是開始有一個機會,在某些情況下,該字符串的變化)我不能得到的XPath

我的代碼塊的位置,我呈現但我不會有的identshortTitl È


$result = $xpaths->xpath("//*[ident = '$page']/moduleConfiguration/config//string[starts-with(.,'/')]"); 
foreach ($result as $item) { 

echo item 

}; 

的完整路徑是

/org.olat.course.Structure/rootNode/children/*[type = 'st' or type = 'sp' or type = 'bc']/moduleConfiguration/config/entry/string 

.... 
<org.olat.course.nodes.STCourseNode> 
    <ident>81473730700165</ident> 
    <parent class="org.olat.course.nodes.STCourseNode" reference="../../.."/> 
    <type>st</type> 
    <shortTitle>General Information</shortTitle> 
    <longTitle/> 
    <learningObjectives/> 
    <displayOption>content</displayOption> 

    <moduleConfiguration> 
     <config> 
     <entry> 
      <string>allowRelativeLinks</string> 
      <string>false</string> 
     </entry> 
     <entry> 
      <string>file</string> 
      <string>/kgalgemeneinformatie.html</string>   <--- 
     </entry> 
     <entry> 
      <string>configversion</string> 
      <int>3</int> 
     </entry> 
     <entry> 
      <string>display</string> 
      <string>file</string> 
     </entry> 
     </config> 
    </moduleConfiguration> 

<noAccessExplanation></noAccessExplanation> 
<preConditionVisibility></preConditionVisibility> 
<preConditionAccess></preConditionAccess> 
<scoreCalculator></scoreCalculator> 
</org.olat.course.nodes.STCourseNode> 
... 

如果這可以在1 foreach中工作,那將是美好的。

親切的問候

迪特

+0

需要如何呢?連接到單個字符串? – ceving 2012-03-27 11:50:51

回答

1

如果你在一個循環要他們爲節點,你必須將它們組合在一起的「|」標識:

//*[ident = '$page']/moduleConfiguration/config//string[starts-with(.,'/')]|//*[ident = '$page']/shortTitle|//*[ident = '$page']/ident 

,或者你可以組他們都在一個節點與連擊功能:

concat(//*[ident = '$page']/moduleConfiguration/config//string[starts-with(.,'/')], //*[ident = '$page']/shortTitle, //*[ident = '$page']/ident)