Advertisement
Guest User

Untitled

a guest
Jun 29th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.00 KB | None | 0 0
  1. config/global/resources/default_setup/connection/host
  2. config/global/resources/default_setup/connection/username
  3. config/global/resources/default_setup/connection/password
  4. config/global/resources/default_setup/connection/dbname
  5.  
  6. <?xml version="1.0"?>
  7. <config>
  8. <global>
  9. <install>
  10. <date><![CDATA[Tue, 11 Dec 2012 12:31:25 +0000]]></date>
  11. </install>
  12. <crypt>
  13. <key><![CDATA[70e75d7969b900b696785f2f81ecb430]]></key>
  14. </crypt>
  15. <disable_local_modules>false</disable_local_modules>
  16. <resources>
  17. <db>
  18. <table_prefix><![CDATA[]]></table_prefix>
  19. </db>
  20. <default_setup>
  21. <connection>
  22. <host><![CDATA[localhost]]></host>
  23. <username><![CDATA[root]]></username>
  24. <password><![CDATA[pass123]]></password>
  25. <dbname><![CDATA[testdb]]></dbname>
  26. <initStatements><![CDATA[SET NAMES utf8]]></initStatements>
  27. <model><![CDATA[mysql4]]></model>
  28. <type><![CDATA[pdo_mysql]]></type>
  29. <pdoType><![CDATA[]]></pdoType>
  30. <active>1</active>
  31. </connection>
  32. </default_setup>
  33. </resources>
  34. <session_save><![CDATA[files]]></session_save>
  35. </global>
  36. <admin>
  37. <routers>
  38. <adminhtml>
  39. <args>
  40. <frontName><![CDATA[admin]]></frontName>
  41. </args>
  42. </adminhtml>
  43. </routers>
  44. </admin>
  45. </config>
  46.  
  47. xmllint --version # xmllint: using libxml version 20703
  48.  
  49. # Note: Newer versions of libxml / xmllint have a --xpath option which
  50. # makes it possible to use xpath expressions directly as arguments.
  51. # --xpath also enables precise output in contrast to the --shell & sed approaches below.
  52. #xmllint --help 2>&1 | grep -i 'xpath'
  53.  
  54. {
  55. # the given XML is in file.xml
  56. host="$(echo "cat /config/global/resources/default_setup/connection/host/text()" | xmllint --nocdata --shell file.xml | sed '1d;$d')"
  57. username="$(echo "cat /config/global/resources/default_setup/connection/username/text()" | xmllint --nocdata --shell file.xml | sed '1d;$d')"
  58. password="$(echo "cat /config/global/resources/default_setup/connection/password/text()" | xmllint --nocdata --shell file.xml | sed '1d;$d')"
  59. dbname="$(echo "cat /config/global/resources/default_setup/connection/dbname/text()" | xmllint --nocdata --shell file.xml | sed '1d;$d')"
  60. printf '%sn' "host: $host" "username: $username" "password: $password" "dbname: $dbname"
  61. }
  62.  
  63. # output
  64. # host: localhost
  65. # username: root
  66. # password: pass123
  67. # dbname: testdb
  68.  
  69. set +H
  70. {
  71. xmlstr='<?xml version="1.0"?>
  72. <config>
  73. <global>
  74. <install>
  75. <date><![CDATA[Tue, 11 Dec 2012 12:31:25 +0000]]></date>
  76. </install>
  77. <crypt>
  78. <key><![CDATA[70e75d7969b900b696785f2f81ecb430]]></key>
  79. </crypt>
  80. <disable_local_modules>false</disable_local_modules>
  81. <resources>
  82. <db>
  83. <table_prefix><![CDATA[]]></table_prefix>
  84. </db>
  85. <default_setup>
  86. <connection>
  87. <host><![CDATA[localhost]]></host>
  88. <username><![CDATA[root]]></username>
  89. <password><![CDATA[pass123]]></password>
  90. <dbname><![CDATA[testdb]]></dbname>
  91. <initStatements><![CDATA[SET NAMES utf8]]></initStatements>
  92. <model><![CDATA[mysql4]]></model>
  93. <type><![CDATA[pdo_mysql]]></type>
  94. <pdoType><![CDATA[]]></pdoType>
  95. <active>1</active>
  96. </connection>
  97. </default_setup>
  98. </resources>
  99. <session_save><![CDATA[files]]></session_save>
  100. </global>
  101. <admin>
  102. <routers>
  103. <adminhtml>
  104. <args>
  105. <frontName><![CDATA[admin]]></frontName>
  106. </args>
  107. </adminhtml>
  108. </routers>
  109. </admin>
  110. </config>
  111. '
  112.  
  113. # exec issue
  114. #exec 3<&- 3<<<"$xmlstr"
  115. #exec 3<&- 3< <(printf '%s' "$xmlstr")
  116. exec 3<&- 3<<EOF
  117. $(printf '%s' "$xmlstr")
  118. EOF
  119.  
  120. { read -r host; read -r username; read -r password; read -r dbname; } < <(
  121. echo "cat /config/global/resources/default_setup/connection/*[self::host or self::username or self::password or self::dbname]/text()" |
  122. xmllint --nocdata --shell /dev/fd/3 |
  123. sed -e '1d;$d' -e '/^ *--* *$/d'
  124. )
  125.  
  126. printf '%sn' "host: $host" "username: $username" "password: $password" "dbname: $dbname"
  127.  
  128. exec 3<&-
  129. }
  130. set -H
  131.  
  132.  
  133. # output
  134. # host: localhost
  135. # username: root
  136. # password: pass123
  137. # dbname: testdb
  138.  
  139. { read -r host; read -r username; read -r password; read -r dbname; }
  140. < <(xmlstarlet sel -t -m /config/global/resources/default_setup/connection
  141. -v ./host -n
  142. -v ./username -n
  143. -v ./password -n
  144. -v ./dbname -n)
  145.  
  146. $ xml2 < test.xml
  147. /config/global/install/date=Tue, 11 Dec 2012 12:31:25 +0000
  148. /config/global/crypt/key=70e75d7969b900b696785f2f81ecb430
  149. /config/global/disable_local_modules=false
  150. /config/global/resources/db/table_prefix
  151. /config/global/resources/default_setup/connection/host=localhost
  152. /config/global/resources/default_setup/connection/username=root
  153. /config/global/resources/default_setup/connection/password=pass123
  154. /config/global/resources/default_setup/connection/dbname=testdb
  155. /config/global/resources/default_setup/connection/initStatements=SET NAMES utf8
  156. /config/global/resources/default_setup/connection/model=mysql4
  157. /config/global/resources/default_setup/connection/type=pdo_mysql
  158. /config/global/resources/default_setup/connection/pdoType
  159. /config/global/resources/default_setup/connection/active=1
  160. /config/global/session_save=files
  161. /config/admin/routers/adminhtml/args/frontName=admin
  162.  
  163. $ eval $(xml2 < test.xml | tr '/, ' '___' | grep =)
  164. $ echo $_config_global_resources_default_setup_connection_host
  165. localhost
  166.  
  167. php -f yourxmlparser.php
  168.  
  169. bash-4.1$ xmlpath 'config/global/resources/default_setup/connection/host' < MagePsycho.xml
  170. localhost
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement