<Hosts>
<Host Host_FQDN="myhost00.com">
<ip_Address>text</ip_Address>
<ip_Address>text</ip_Address>
<ip_Address>text</ip_Address>
<Host_Directory_To_Clean Perform="text">
<Perform_Deletes>true</Perform_Deletes>
<Delete_Files_AbsolutePath>String</Delete_Files_AbsolutePath>
<Delete_Files_Recursively>true</Delete_Files_Recursively>
<Delete_Files_Selection>String</Delete_Files_Selection>
<Delete_Files_Selection>String</Delete_Files_Selection>
<Delete_Files_Selection>String</Delete_Files_Selection>
</Host_Directory_To_Clean>
<Host_FileSystem_Backup Perform="text">
<Perform_Backup>False</Perform_Backup>
<Backup_Full_Path>String</Backup_Full_Path>
<Backup_File_Name>String</Backup_File_Name>
</Host_FileSystem_Backup>
</Host>
</Hosts>
<Hosts>
<Host Host_FQDN=" myhost01.com">
<ip_Address>text</ip_Address>
<ip_Address>text</ip_Address>
<ip_Address>text</ip_Address>
<Host_Directory_To_Clean Perform="text">
<Perform_Deletes>true</Perform_Deletes>
<Delete_Files_AbsolutePath>String</Delete_Files_AbsolutePath>
<Delete_Files_Recursively>true</Delete_Files_Recursively>
<Delete_Files_Selection>String</Delete_Files_Selection>
<Delete_Files_Selection>String</Delete_Files_Selection>
<Delete_Files_Selection>String</Delete_Files_Selection>
</Host_Directory_To_Clean>
<Host_FileSystem_Backup Perform="text">
<Perform_Backup>N</Perform_Backup>
<Backup_Full_Path>String</Backup_Full_Path>
<Backup_File_Name>String</Backup_File_Name>
</Host_FileSystem_Backup>
</Host>
</Hosts>
<Hosts>
<Host Host_FQDN=" myhost02.com">
<ip_Address>text</ip_Address>
<ip_Address>text</ip_Address>
<ip_Address>text</ip_Address>
<Host_Directory_To_Clean Perform="text">
<Perform_Deletes>true</Perform_Deletes>
<Delete_Files_AbsolutePath>String</Delete_Files_AbsolutePath>
<Delete_Files_Recursively>true</Delete_Files_Recursively>
<Delete_Files_Selection>String</Delete_Files_Selection>
<Delete_Files_Selection>String</Delete_Files_Selection>
<Delete_Files_Selection>String</Delete_Files_Selection>
</Host_Directory_To_Clean>
<Host_FileSystem_Backup Perform="text">
<Perform_Backup>NO</Perform_Backup>
<Backup_Full_Path>String</Backup_Full_Path>
<Backup_File_Name>String</Backup_File_Name>
</Host_FileSystem_Backup>
</Host>
</Hosts>
Я пытаюсь получить выражение xmllint –xpath, которое возвращает только значение элемента XML.Я пытался ...
xmllint --xpath string(//Hosts/Host)[1]/@Host_FQDN /myFile.xml
xmllint --xpath “string(//Hosts/Host)[1]/@Host_FQDN” /myFile.xml
xmllint --xpath (string(//Hosts/Host)[1]/@Host_FQDN) /myFile.xml
xmllint --xpath “(string(//Hosts/Host)[1]/@Host_FQDN)” /myFile.xml
Но результатом является одна или несколько из следующих ошибок.
bash: синтаксическая ошибка рядом с неожиданным токеном `('
Ошибка XPath: недопустимый тип
Ошибка оценки XPath
Если используется следующее, имя атрибута элемента XML и значение возвращаются. Я просто хочу значение.
xmllint --xpath (//Hosts/Host)[1]/@Host_FQDN /myFile.xml
Результаты ниже имеют начальный пробел.
Host_FQDN = "myhost.com"
Мне показалось странным, что функция count () работает отлично. См. Пример ниже.
xmllint --xpath count(//Hosts/Host)[1]/@Host_FQDN /myFile.xml
Ниже приведен фрагмент кода, который вызывает команду xmllint в скрипте BASH.
unset wwString
wwString="xmllint --xpath string(//"
wwString="$wwString$xmlElementName)"
wwString="$wwString["
wwString="$wwString$i]/@"
wwString="$wwString$xmlElementAttributeName "
wwString="$wwString$propertiesFileFullPath"
wwString="$wwString/"
wwString="$wwString$fullXMLpropertiesFileName"
wwExtracted=$(${wwString})