Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations IamaSherpa on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Parsing XML with XSLT

Status
Not open for further replies.

crult

Technical User
Sep 24, 2010
13
FR
Hello,

I have a folder containing a large number of .xml files. Alternatively, i have also a .txt file that contains all these .xml like text. These documents come from newspaper's articles in xml format. There's is a sample:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<Document xyurl="xyl://20040101N0076.xml"><Texte><P>Outre leurs activités habituelles, les hôpitaux ont dû faire face à une catastrophe exceptionnelle, durant l'été : la canicule, qui a provoqué 15 000 morts en août. Les urgentistes ont été les premiers à porter le drame sur la place publique. Près de 3 000 décès sont survenus dans des maisons de retraite et plus de 6 000 à l'hôpital ou en clinique, a révélé une étude de l'Institut national de la santé et de la recherche médicale (Inserm). Mais près de la moitié des personnes ayant trouvé la mort à l'hôpital venaient de maisons de retraite et de centres de long séjour. En reconnaissance de la « mobilisation exceptionnelle » des personnels hospitaliers ayant travaillé du 7 au 19 août, le ministère de la santé a annoncé, le 1er décembre, qu'une prime de 90 à 130 euros leur serait allouée. L'idée a été critiquée par des syndicats hospitaliers, qui soulignent la nécessité de donner des moyens « pérennes » aux hôpitaux.</P><P/></Texte></Document><?xml version="1.0" encoding="UTF-8"?>
<Document xyurl="xyl://20040101N0077.xml"><Texte><P>« C'est le plus beau réveillon de ma vie. » Alexis, passionné de spéléologie et d'escalade, a fêté Noël dans les arbres, parc Paul-Mistral, à Grenoble, et passera de la même façon le Nouvel An. Il est l'un des « accro-citoyens » qui, depuis plus de huit semaines, résistent au froid et même à la neige, perchés dans de drôles de petites cahutes faites de bâches en plastique. Ils espèrent empêcher l'abattage de 300 arbres, prévu dans le cadre de la construction du nouveau stade de football de l'agglomération.</P><P>Trois au départ, ils sont aujourd'hui une cinquantaine à se relayer jour et nuit pour assurer la garde des arbres parmi lesquels un orme champêtre, l'un des rares spécimens survivants d'une espèce décimée par la maladie de la graphiose. Originaires de Grenoble, ou venus d'ailleurs « par solidarité », ils passent une ou plusieurs nuits. Chômeurs, étudiants, intermittents du spectacle, routards ou saisonniers, beaucoup ont en commun la passion de la grimpe. Aucun n'est contre le football. Tous demandent un gel des travaux, la révision du projet et l'étude d'un nouvel emplacement. Ils souhaitent surtout que la population soit consultée.</P></Texte></Document>

As you can see there are many tags, but i'm interested in the tag <Texte> wich contains the main article. I'm searching for a XSLT scenario that allows me to:

* Export the contents of all the tags <Texte>. Only the contents (articles), without the tags. The result must be printed in a separate .txt file. If it's possible, to print leaving some space to separate the body of each article. Something like paragraphs.
* Parse each article contained in the tags <Texte>. The result must be printed in a separate .txt file that contains a list of all the words in the article, excluding the marks as . , : etc



Thank you for the help!
 
[0] >There's is a sample
You mean one sample or two samples?

[1] If you mean two samples, each sample being well-formed, the functionality is contained in a simple template within the xslt.
[tt]
<xsl:template match="Texte">
<xsl:value-of select="normalize-space(.)" />
</xsl:template>
[/tt]
[1.1] ...with possibly the output specifying your encoding and else.
[tt]
<xsl:eek:utput method="text" omit-xml-declaration="yes" encoding="utf-8" />
[/tt]
 
This is a sample of the txt file, where you can see only two of the xml documents. Normally this list continues with a third, fourth etc...(over 6.000 xml documents in total).

Thank you
 
If that is the text file consolidating those xml documents in that form making them far less ready for xml-processing, why bother to to process the txt file with xslt? You should process the xml files, if you want to use any of the xml technologies where xslt is one.
 
Ok, so you think that is better to process directly the folder that contains the xml files. Is there a XSLT instruction that allows to search and process all the contents of that folder? Thanks
 
What are you using to process the xml document to the text file in the first place? Show it to make the question more substantive. Otherwise, I had posted the core functionality if you use xslt.
 
I'm going to use your code with XSLT. I asked you if there's an instruction to search all the xml files contained in that folder at once. How XSLT 'understands' that the following instruction will be executed for all these files in a specific folder:

<xsl:template match="Texte">
<xsl:value-of select="normalize-space(.)" />
</xsl:template>
 
Thanks! I'll give it a try.

Best regards
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top