[ 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 ] @
Za takve stvari ja koristim xpath
http://www.w3schools.com/xpath/default.asp
[ 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 :)