Backstory
Ho un documento di tipo XML
( SSML
, che è usato per Text-To-Speech
), che sarà usato per generare file audio quando ssh
trasferito su un server remoto. Di conseguenza, dovrò includere i metadati per i tag ID3
che in genere vengono utilizzati nei file audio (Genere, Titolo, Compositore, Album, ecc.).
Il mio approccio finora è stato quello di inventare un nuovo tag:
<metadata value="genre">
Froggy
</metadata>
E poi analizzarlo usando le espressioni regolari:
/* Grab Metadata */
QTerminalTools tt;
QFile file(filePath);
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
const QString metadata = file.readAll();
QString genre(metadata);
genre.replace(QRegularExpression("(?s)^.*"
+ QRegularExpression::escape("<metadata value=\"genre\">")
+"\n(.*)?\n"
+ QRegularExpression::escape("</metadata>")
+ ".*$")
, "\1");
qDebug().noquote() << tt.orange("Genre: " + genre);
}
Questo è davvero un approccio molto crudo che ho inventato al volo, quindi immagino che ci siano pratiche migliori di cui non sono a conoscenza. In quanto tale:
Domande
- L'XML è stato progettato per gestire i metadati personalizzati?
- Esiste già un tag standard in XML per i metadati personalizzati (
<metadata value="type">value</metadata>
)? - I parser XML sono standardizzati nel caso in cui sia necessario creare il mio?
- Ci sono problemi di sicurezza nella creazione dei miei tag?
Grazie.