Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
Account gelöscht
Threadersteller
Ort: -
Alter: -
|
Verfasst Mo 06.02.2006 00:28
Titel xpat php |
|
|
kann man dem xml parser ivm der funktion xml_parse_into_struct() latin-1 entities beibringen?
|
|
|
|
|
tacker
Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht:
|
Verfasst Mo 06.02.2006 11:34
Titel
|
|
|
Ja. Evtl. über Umwege. Was klappt denn nicht?
|
|
|
|
|
Anzeige
|
|
|
Account gelöscht
Threadersteller
Ort: -
Alter: -
|
Verfasst Mo 06.02.2006 11:47
Titel
|
|
|
Äh Parsefehler "unbekannte entität"?
|
|
|
|
|
tacker
Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht:
|
Verfasst Mo 06.02.2006 11:49
Titel
|
|
|
Code bitte.
|
|
|
|
|
Account gelöscht
Threadersteller
Ort: -
Alter: -
|
Verfasst Mo 06.02.2006 11:57
Titel
|
|
|
naja das wird dir aber auch nicht helfen. ich machs mal abgekürzt:
Code: |
// DEBUG:
// replacing & for avoiding undeclared entity error
// $str = str_replace("&", "&", $str);
// converting into unicode
// $str = utf8_encode($str);
// ordenary parser creation, namespaces are located by script
$p = xml_parser_create();
// no whitespace, no case folding
xml_parser_set_option($p, XML_OPTION_CASE_FOLDING, false);
xml_parser_set_option($p, XML_OPTION_SKIP_WHITE, true);
// building xml tree
if (!xml_parse_into_struct($p, $str, $val)) {
echo "<div style=\"color:red; font-weight:bold; background:black;\" class=\"error\">parse-error " . xml_get_error_code($p) . ": " . xml_error_string(xml_get_error_code($p)) . " in line " . xml_get_current_line_number($p)
. "</div>";
die();
}
xml_parser_free($p);
$this->xml = $val; |
ne XML-Datei die Fehler liefert, sieht so aus:
Code: | <?xml version="1.0"?>
<porn>
<facial>ö</facial>
</porn> |
Lustigerweise wird aus dem Error ne Warning, wenn ich nen Doctype angebe. Dabei ist es aber latte, ob der Pfad zur DTD stimmt, der Parser ignoriert die (er validiert ja auch nicht, muss er auch gar nicht). Aber egal ob Fehler oder Warnung, er verweigert ab der Stelle so oder so seinen Dienst.
Zuletzt bearbeitet von am Mo 06.02.2006 11:59, insgesamt 2-mal bearbeitet
|
|
|
|
|
tacker
Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht:
|
|
|
|
|
Account gelöscht
Threadersteller
Ort: -
Alter: -
|
Verfasst Mo 06.02.2006 12:16
Titel
|
|
|
Nee klappt nicht, hab ich schon versucht. Ich schreibs ja eh direkt in nen Array, somit fallen die Callbackfunctionen schonmal raus. Und den Namespace ignoriert er. Viel schlimmer: Verwende ich xml_parser_create_ns(), so schneidet der mir (un)sinnigerweise einfach meine Namespaceprefixe ab...
//
ich brauch die präfixe halt, weil ich meine templates damit verwurschtle
Code: | <?xml version="1.0"?>
<tpl:template>
<tpl:doctype name="xhtml 1.0" mode="transitional"/>
<tpl:html>
<head>
<tpl:content label="content2"/>
<tpl:title>optimusprime
<tpl:menuLevel>
<tpl:menuEntries>
<tpl:isVisited>
<tpl:menuLevel>
<tpl:menuEntries>
<tpl:isVisited>
/ {sys:$menuTitle}
<tpl:menuLevel>
<tpl:menuEntries>
<tpl:isVisited>
/ {sys:$menuTitle}
</tpl:isVisited>
</tpl:menuEntries>
</tpl:menuLevel>
</tpl:isVisited>
</tpl:menuEntries>
</tpl:menuLevel>
</tpl:isVisited>
<tpl:isSelected>
/ {sys:$menuTitle}
</tpl:isSelected>
</tpl:menuEntries>
</tpl:menuLevel>
</tpl:title>
<tpl:meta/>
<link rel="stylesheet" href="all.css" type="text/css" media="all" />
<link rel="stylesheet" href="special.css" type="text/css" media="all" />
<link rel="stylesheet" href="sIFR-screen.css" type="text/css" media="screen" />
<link rel="stylesheet" href="sIFR-print.css" type="text/css" media="print" />
<script src="sifr.js" type="text/javascript"></script>
<script src="sifr-addons.js" type="text/javascript"></script>
</head>
<body>
<div style="display:inline"><a id="top"></a></div>
<div id="mainnavi">
<!-- root -->
<tpl:menuLevel>
<tpl:menuEntries>
<h1><tpl:a><span>{sys:$menuTitle}</span></tpl:a></h1>
<!-- 1. Level -->
<tpl:menuLevel>
<ul>
<tpl:menuEntries>
<li>
<tpl:a>{sys:$menuTitle} </tpl:a>
</li>
</tpl:menuEntries>
</ul>
</tpl:menuLevel>
</tpl:menuEntries>
</tpl:menuLevel>
</div>
<div id="subnavi">
<tpl:menuLevel>
<tpl:menuEntries>
<tpl:menuLevel>
<tpl:menuEntries>
<tpl:isVisited>
<tpl:menuLevel>
<tpl:hasChilds>
<ul>
<tpl:menuEntries>
<li><tpl:a class="mainnavi_{sys:$menuTitle}"><span>{sys:$menuTitle}</span></tpl:a></li>
</tpl:menuEntries>
</ul>
<p>&nbsp;</p>
</tpl:hasChilds>
</tpl:menuLevel>
</tpl:isVisited>
</tpl:menuEntries>
</tpl:menuLevel>
</tpl:menuEntries>
</tpl:menuLevel>
<ul>
<li><tpl:a id="impressum">{sys:$menuTitle}</tpl:a></li>
</ul>
<div id="googleads">
<script type="text/javascript">
//<![CDATA[
google_ad_client = "pub-1799851216784292";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text";
google_ad_channel ="";
google_color_border = "2D2922";
google_color_bg = "13100E";
google_color_link = "FFFFFF";
google_color_url = "8D8573";
google_color_text = "FFFFFF";
//]]>
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</div>
</div>
<div id="content">
<h2>{sysg:$pageTitle}</h2>
<tpl:content label="content1"/>
</div>
<div id="sidebar">
<tpl:content label="content3"/>
<tpl:content label="content4"/>
<tpl:content label="content5"/>
</div>
<div id="footer" style="clear:left;">
<hr/>
<h3>Verantwortlich i. S. d. Presserechts:</h3>
<address>Johannes Heinen
Königstraße 257
47798 Krefeld</address>
<p>Alle Inhalte dieser Seiten sowie Verweise auf fremde Ressourcen werden sorgfältig geprüft.
Falls ihr trotzdem etwas zu beanstanden habt, schreibt mir doch bitte eine
E-Mail, bevor ihr mir ne Abmahnung schickt. Ich bin Student -> Bei mir is eh nix zu holen ;).</p>
<p>Benutzt einfach das Formular am rechten Seitenrand.</p>
</div>
<script type="text/javascript">
//<![CDATA[
/* Replacement calls. Please see documentation for more information. */
if(typeof sIFR == "function"){
sIFR.replaceElement(named({sSelector:"h2", sFlashSrc:"baskerville.swf", sColor:"#FBF9F3", sLinkColor:"#FBF9F3", sBgColor:"none", sHoverColor:"#999999", nPaddingTop:0, nPaddingBottom:0, sWmode:"transparent", sFlashVars:""}));
sIFR.replaceElement(named({sSelector:"#mainnavi li", sFlashSrc:"baskerville.swf", sColor:"#FBF9F3", sLinkColor:"#FBF9F3", sBgColor:"none", sHoverColor:"#999999", nPaddingTop:0, nPaddingBottom:0, sWmode:"transparent", sFlashVars:""}));
};
//]]>
</script>
</body>
</tpl:html>
</tpl:template> |
Zuletzt bearbeitet von am Mo 06.02.2006 12:25, insgesamt 2-mal bearbeitet
|
|
|
|
|
tacker
Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht:
|
Verfasst Mo 06.02.2006 12:29
Titel
|
|
|
Was ist mit DOM oder SimpleXML?
|
|
|
|
|
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|