Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- config/global/resources/default_setup/connection/host
- config/global/resources/default_setup/connection/username
- config/global/resources/default_setup/connection/password
- config/global/resources/default_setup/connection/dbname
- <?xml version="1.0"?>
- <config>
- <global>
- <install>
- <date><![CDATA[Tue, 11 Dec 2012 12:31:25 +0000]]></date>
- </install>
- <crypt>
- <key><![CDATA[70e75d7969b900b696785f2f81ecb430]]></key>
- </crypt>
- <disable_local_modules>false</disable_local_modules>
- <resources>
- <db>
- <table_prefix><![CDATA[]]></table_prefix>
- </db>
- <default_setup>
- <connection>
- <host><![CDATA[localhost]]></host>
- <username><![CDATA[root]]></username>
- <password><![CDATA[pass123]]></password>
- <dbname><![CDATA[testdb]]></dbname>
- <initStatements><![CDATA[SET NAMES utf8]]></initStatements>
- <model><![CDATA[mysql4]]></model>
- <type><![CDATA[pdo_mysql]]></type>
- <pdoType><![CDATA[]]></pdoType>
- <active>1</active>
- </connection>
- </default_setup>
- </resources>
- <session_save><![CDATA[files]]></session_save>
- </global>
- <admin>
- <routers>
- <adminhtml>
- <args>
- <frontName><![CDATA[admin]]></frontName>
- </args>
- </adminhtml>
- </routers>
- </admin>
- </config>
- xmllint --version # xmllint: using libxml version 20703
- # Note: Newer versions of libxml / xmllint have a --xpath option which
- # makes it possible to use xpath expressions directly as arguments.
- # --xpath also enables precise output in contrast to the --shell & sed approaches below.
- #xmllint --help 2>&1 | grep -i 'xpath'
- {
- # the given XML is in file.xml
- host="$(echo "cat /config/global/resources/default_setup/connection/host/text()" | xmllint --nocdata --shell file.xml | sed '1d;$d')"
- username="$(echo "cat /config/global/resources/default_setup/connection/username/text()" | xmllint --nocdata --shell file.xml | sed '1d;$d')"
- password="$(echo "cat /config/global/resources/default_setup/connection/password/text()" | xmllint --nocdata --shell file.xml | sed '1d;$d')"
- dbname="$(echo "cat /config/global/resources/default_setup/connection/dbname/text()" | xmllint --nocdata --shell file.xml | sed '1d;$d')"
- printf '%sn' "host: $host" "username: $username" "password: $password" "dbname: $dbname"
- }
- # output
- # host: localhost
- # username: root
- # password: pass123
- # dbname: testdb
- set +H
- {
- xmlstr='<?xml version="1.0"?>
- <config>
- <global>
- <install>
- <date><![CDATA[Tue, 11 Dec 2012 12:31:25 +0000]]></date>
- </install>
- <crypt>
- <key><![CDATA[70e75d7969b900b696785f2f81ecb430]]></key>
- </crypt>
- <disable_local_modules>false</disable_local_modules>
- <resources>
- <db>
- <table_prefix><![CDATA[]]></table_prefix>
- </db>
- <default_setup>
- <connection>
- <host><![CDATA[localhost]]></host>
- <username><![CDATA[root]]></username>
- <password><![CDATA[pass123]]></password>
- <dbname><![CDATA[testdb]]></dbname>
- <initStatements><![CDATA[SET NAMES utf8]]></initStatements>
- <model><![CDATA[mysql4]]></model>
- <type><![CDATA[pdo_mysql]]></type>
- <pdoType><![CDATA[]]></pdoType>
- <active>1</active>
- </connection>
- </default_setup>
- </resources>
- <session_save><![CDATA[files]]></session_save>
- </global>
- <admin>
- <routers>
- <adminhtml>
- <args>
- <frontName><![CDATA[admin]]></frontName>
- </args>
- </adminhtml>
- </routers>
- </admin>
- </config>
- '
- # exec issue
- #exec 3<&- 3<<<"$xmlstr"
- #exec 3<&- 3< <(printf '%s' "$xmlstr")
- exec 3<&- 3<<EOF
- $(printf '%s' "$xmlstr")
- EOF
- { read -r host; read -r username; read -r password; read -r dbname; } < <(
- echo "cat /config/global/resources/default_setup/connection/*[self::host or self::username or self::password or self::dbname]/text()" |
- xmllint --nocdata --shell /dev/fd/3 |
- sed -e '1d;$d' -e '/^ *--* *$/d'
- )
- printf '%sn' "host: $host" "username: $username" "password: $password" "dbname: $dbname"
- exec 3<&-
- }
- set -H
- # output
- # host: localhost
- # username: root
- # password: pass123
- # dbname: testdb
- { read -r host; read -r username; read -r password; read -r dbname; }
- < <(xmlstarlet sel -t -m /config/global/resources/default_setup/connection
- -v ./host -n
- -v ./username -n
- -v ./password -n
- -v ./dbname -n)
- $ xml2 < test.xml
- /config/global/install/date=Tue, 11 Dec 2012 12:31:25 +0000
- /config/global/crypt/key=70e75d7969b900b696785f2f81ecb430
- /config/global/disable_local_modules=false
- /config/global/resources/db/table_prefix
- /config/global/resources/default_setup/connection/host=localhost
- /config/global/resources/default_setup/connection/username=root
- /config/global/resources/default_setup/connection/password=pass123
- /config/global/resources/default_setup/connection/dbname=testdb
- /config/global/resources/default_setup/connection/initStatements=SET NAMES utf8
- /config/global/resources/default_setup/connection/model=mysql4
- /config/global/resources/default_setup/connection/type=pdo_mysql
- /config/global/resources/default_setup/connection/pdoType
- /config/global/resources/default_setup/connection/active=1
- /config/global/session_save=files
- /config/admin/routers/adminhtml/args/frontName=admin
- $ eval $(xml2 < test.xml | tr '/, ' '___' | grep =)
- $ echo $_config_global_resources_default_setup_connection_host
- localhost
- php -f yourxmlparser.php
- bash-4.1$ xmlpath 'config/global/resources/default_setup/connection/host' < MagePsycho.xml
- localhost
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement