-
Hallo Herr Fuerchau,
besten Dank zunächst für Ihre Bemühung. Mit CHGATR konnte ich die CCSID der XML-Datei von 1252 auf 1208 ändern. Mein Job läuft unter 1141. Hier ist 1208 nicht vorgesehen. Mit CHGJOB versuchte ich es mit 273 ohne eine Änderung zu bewirken. 1208 ist hier nicht zulässig. Meines Wissens ist 1141 die Erweiterung des 273 um das Eurosymbol.
Allerdings ist mein Hauptproblem der abgeschnittene Text.
besten Dank im Voraus
-
Es gibt da so ein paar Limits:
https://www.ibm.com/support/knowledg...parselimit.htm
UTF8 gehört da irgendwie nicht dazu.
Ggf. musst du die IFS-Datei vorher per QSH 'iconv ...' in 1252 umwandeln. Zusätzlich sind auch ggf. die Sonderzeichen CRLF zu entfernen.
PS:
Ich fand den XML-INTO besser, zumal ich das auch mit UCS2 machen kann.
Die Datei lese ich (bis max. 8 MB) per SQL und CLOB_FILE ein.
-
Hast Du mal versucht bei der %Handler() Funktion die CCSID anzugeben?
Beispiel: Hier werden die Daten als UCS2 ausgegeben.
Code:
XML-SAX %handler(hdlr:comm) %XML(xmldata : 'ccsid=ucs2');
Birgitta
-

Die auskommentierte Anweisung hatte ich zuvor.
Im Übrigen hab ich aus dem Text mit dem WIN10-Editor alle Umlaute und Zeilenumbrüche entfernt. Letztes und erstes reguläres Zeichen gelöscht und neu geschrieben. Den Umlaut gegen ue ersetzt.
Trotzdem wird der Text abgeschnitten: FC-Ausruestung alte Chemie 80 % (komplette Partie) 32 Stueck
Vielleicht gibt es ein Beispiel um das ganze mit SQL einzulesen. Bin hier leider vor einiger Zeit nicht fündig geworden.
Besten Dank an alle. Für heute reichts erstmal ...
-
... oder Du schaust dir mal den XML-INTO an. Mit V3R1 oder so ginge dies natürlich nicht.
kf
-
Suche mal hier im Forum nach XML-INTO.
Da gibt es einige Beispiele (for allem Free) mit geschachtelten qualified DS und einer einzigen Anweisung.
-
Vielen Dank nochmal an alle Koryphäen. Abschließend muss ich sagen, dass ich mich von XML in RPG abgewendet habe. Der Versuch in C# war auf Anhieb von Erfolg gekrönt. Die Umlaute werden korrekt dargestellt. Nichts wird abgeschnitten. Selbst die Zeilenumbrüche sind vorhanden.
Der Code ist übersichtlich und leicht verständlich. Hier sollte sich IBM was abschauen.
Danke für die Hilfsbereitschaft.
using System;using System.Xml;
namespace ReadXMLfromFile
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
static void Main(string args)
{
XmlTextReader reader = new XmlTextReader ("books.xml");
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element: // The node is an element.
Console.Write("<" + reader.Name);
Console.WriteLine(">");
break;
case XmlNodeType.Text: //Display the text in each element.
Console.WriteLine (reader.Value);
break;
case XmlNodeType.EndElement: //Display the end of the element.
Console.Write("</" + reader.Name);
Console.WriteLine(">");
break;
}
}
Console.ReadLine();
}
}
}
-
Für XML Verarbeitung verwende ich persönlich entweder SQL oder Python (oder auch PHP) auf der IBM i.
Läuft native und ist auch mit ein paar Zeilen Code zu implementieren. Und Unicode Probleme gibt's da auch weniger.
lg Andreas
-
SQL interessiert mich brennend. Gibt es evtl. ein übersichtliches Beispiel auf eine Datei im IFS?
-
Hier gibts Doku und Beispiele:
https://www.ibm.com/support/knowledg...aspkickoff.htm
Klar ist jede Sprache die XML native kann besser als ILERPG.
Aber auf der IBM i kannst du ebenso Java oder Node.js verwenden.
-
Hier ist ein ganz einfaches Beispiel, bei dem auf eine IFS-Datei zugegriffen wird.
Code:
Select a.*
from XMLTABLE('Staff/Department/Employee'
passing xmlparse(Document Get_xml_file('/home/Hauser/EmplXML.xml'))
Columns EmployeeNo Integer Path '@Id',
FirstName VarChar(30) Path 'Name/FirstName',
LastName VarChar(30) Path 'Name/LastName',
Title VarChar(30)
Default '' Path 'Name/LastName/@Title',
Salary Dec(11, 2)
Default 0 Path 'Privacy/Salary',
Currency VarChar(30)
Default '' Path 'Privacy/Salary/@Currency') a;
Für die Details solltest Du Dir allerdings das White Paper anschauen, das Baldur angegeben hat.
-
Achja, was die CCSID 1208 angeht, so muss die IFS-Datei dieses Attribut bereits vorher haben (CHGATR).
SQL und XML-INTO interessieren sich leider nicht für die Processing Instruction: encoding="xxx".
Dafür müsste man die IFS-Datei nämlich nach der Encoding-Erkenntnis noch mal neu einlesen.
Similar Threads
-
By KingofKning in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 12-05-16, 16:41
-
By petzi-mg in forum NEWSboard Programmierung
Antworten: 13
Letzter Beitrag: 06-11-14, 07:51
-
By AK1 in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 07-04-14, 06:38
-
By synus in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 08-04-03, 13:12
-
By W.Steiner in forum Archiv NEWSblibs
Antworten: 0
Letzter Beitrag: 12-10-01, 07:07
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks