2013-10-09 2 views
2

не редактируют я следующий XML:XMLStarlet ничего

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:objectgrid="http://www.ibm.com/schema/objectgrid" 
     xsi:schemaLocation="http://www.ibm.com/schema/objectgrid 
      http://www.ibm.com/schema/objectgrid/objectgrid.xsd"> 

<objectgrid:server id="catlogServer" isCatalog="true" 
    serverPropertyFile="location_server_properties_file"> 
</objectgrid:server> 
</blueprint>  

и я Тринг редактировать значение атрибута serverPropertyFile с помощью XMLStarlet следующим образом:

/tmp/scripts/xmlstarlet ed -N objectgrid=http://www.ibm.com/schema/objectgrid -u "//blueprint/objectgrid:server/@serverPropertyFile" -v '/home/iwuser/att-platform/1.0.10/servers/catalog_demo/config/wxs-catalog-server/catalog-properties/catalog.properties' '/var/tmp/catalog_demo/config/catalog-blueprint.xml' > /var/tmp/temp_xml31651.xml 

Что я упускаю ?

нашел ответ: я использовал XPath является неправильно правильным является:

/tmp/scripts/xmlstarlet ed -N objectgrid=http://www.ibm.com/schema/objectgrid -u "//objectgrid:server/@serverPropertyFile" -v '/home/iwuser/att-platform/1.0.10/servers/catalog_demo/config/wxs-catalog-server/catalog-properties/catalog.properties' '/var/tmp/catalog_demo/config/catalog-blueprint.xml' > /var/tmp/temp_xml31651.xml 
+1

'xmlns =" ​​http://www.osgi.org/xmlns/blueprint/v1.0.0 "означает, что элемент' blueprint' находится в пространстве имен, поэтому вам нужно учитывать это в XPath это как у вас, просто делая // objectgrid: server') –

ответ

1

синтаксис Ok! меня устраивает ! проверьте путь к файлу, возможно, вы что-то пропустили.

Смежные вопросы