misxa @ 21.06.2005. 08:45
Kako iz XML dokumenata izvuci cisti tekst???
Java Beograd @ 21.06.2005. 08:53
Ukoliko poznaješ strukturu XML dokumenta onda je veoma lako. Ukoliko ne poznaješ - onda veoma teško. Jer, zapravo je pitanje šta podrazumevaš kao "čisti tekst".
jablan @ 21.06.2005. 09:11
Verovatno misliš na sve ono što nije u tagovima.
Ako neće da radi innerText na celom dokumentu (mrzi me da probavam sad), možeš da regularnim izrazima brišeš tagove ili da napraviš jednostavnu XSL transformaciju.
Java Beograd @ 21.06.2005. 09:20
Da, ali nekad je atribut u tagu. Da li je atribut tekst ili nije ?
Dakle moze ovo:
Code:
<teniser>
<pol>zenski</pol>
<ime>Ana</ime>
<prezime>Ivanovic</prezime>
</teniser>
ali i ovo:
Code:
<teniser pol="zenski" ime="Ana" prezime="Ivanovic"/>
Šta je onda tekst ? Ako obriše tag
<teniser> šta onda ostaje ?
Poželimo sreću Ani na današnjem meču u Wimbledonu !
adnan78 @ 22.06.2005. 16:08
misxa @ 27.06.2005. 10:15
Pa kako iskoristiti XPath za ekstrakciju teksta?
dragansm @ 27.06.2005. 11:18
Mozda ti ne zavrsava posao, ali moze ti dati ideju:
Code:
private string strOutInnerText = "";
public void Proba()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml( "<A a=\"t1\"><B b=\"t2\"/><B b=\"t3\"/><C><B b=\"t4\">t5</B><B b=\"t6\">t7</B></C></A>" );
XmlNode xmlNode = (XmlElement)xmlDoc.FirstChild;
if ( xmlNode != null ) ProcesChild( xmlNode );
}
private void ProcesChild( XmlNode xmlNode )
{
while ( xmlNode != null )
{
if ( xmlNode.NodeType != XmlNodeType.Text ) Print( (XmlElement)xmlNode );
if ( xmlNode.FirstChild != null ) ProcesChild( xmlNode.FirstChild );
xmlNode = xmlNode.NextSibling;
}
}
private void Print( XmlElement xmlNode )
{
if ( xmlNode.FirstChild != null && xmlNode.FirstChild.NodeType == XmlNodeType.Text)
strOutInnerText += xmlNode.InnerText + " -- ";
for ( int i = 0; i < xmlNode.Attributes.Count; ++i )
{
strOutInnerText += xmlNode.Attributes[i].InnerText + " - ";
}
}
misxa @ 27.06.2005. 13:36
Hvala :)
Copyright (C) 2001-2008 by www.elitesecurity.org. All rights reserved.