0
XMLからフィールドを抽出するスクリプトを作成していますが、これを取得して動作させる必要があります.2とgrepsを試していました。少し助けが必要です。カスタムXMLからフィールドを抽出する
#! /bin/bash
function charge_files() {
XML="Prueba.xml";
if [ -f "$XML" ]; then
echo "=============================";
echo "| XML CHARGED |";
echo "=============================";
else
echo "=============================";
echo "| XML NOT CHARGED |";
echo "=============================";
fi
}
function extract() {
#extract all from the file (not curr working)
x=`grep "Host"`
for $x in "$XML"
do
for LINEA in `cat $XML | grep "<Telegram" ` #LINEA guarda el resultado del fichero datos.txt
do
TIMESTAMP=`echo $LINEA | grep [Timestamp="*"] ` #Extracts TIMESTAMP
FRAMEFORMAT=`echo $LINEA | grep [FrameFormat="*"]` #Extracts FRAMEFORMAT
RAWDATA=`echo $LINEA | grep [RawData="*"]` #Extracts RAWDATA
echo "$x $HOST $TIMESTAMP $FRAMEFORMAT $RAWDATA" >> output.logs #Shows result
done
done
}
charge_files
extract
私は、これは
<CommunicationLog xmlns="http://knx.org/xml/telegrams/01">
<RecordStart Timestamp="" Mode="" Host="PC1" ConnectionName="" ConnectionOptions="" ConnectorType="" MediumType="" />
<Telegram Timestamp="" Service="" FrameFormat="" RawData="" />
<Telegram Timestamp="" Service="" FrameFormat="" RawData="" />
<RecordStart Timestamp="" Mode="" Host="PC2" ConnectionName="" ConnectionOptions="" ConnectorType="" MediumType="" />
<Telegram Timestamp="" Service="" FrameFormat="" RawData="" />
<Telegram Timestamp="" Service="" FrameFormat="" RawData="" />
<RecordStop Timestamp="" />
</CommunicationLog>
をフィールドと私はより多くのcomparationsを作るために、このような出力をしたい、このXML withsを得た:
HOST="PC1" ConnectorType="" Timestamp="" FrameFormat="" RawData=""
HOST="PC1" ConnectorType="" Timestamp="" FrameFormat="" RawData=""
HOST="PC2" ConnectorType="" Timestamp="" FrameFormat="" RawData=""
HOST="PC2" ConnectorType="" Timestamp="" FrameFormat="" RawData=""