---
title: "Länk klipps av vid SAX-parsing"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/99647-länk-klipps-av-vid-sax-parsing"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Skarre"
published: "2004-03-17T07:27:31.000Z"
updated: "2004-03-17T07:27:31.000Z"
replies: 0
views: 157
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/99647-länk-klipps-av-vid-sax-parsing"
---

# Länk klipps av vid SAX-parsing

## #1 — Skarre, 2004-03-17T07:27Z

Eftersom jag inte får DOMXML att fungera använder jag istället SAX för att försöka hämta nyheter från följande sida: http://www.basket.se/feed/news.asp?n=10

Det går dock inte så bra länken som skrivs ut bara är sista delen. Länkarna ser normalt ut så här:

```
http://www.basket.se/t3.asp?p=4658&x=1&a=107634
```

... men det som skrivs ut är bara det som kommer efter den sista ampersanden alltså:

```
a=107634
```

```
<?
$current_tag = '';

$GLOBALS['headline'] = '';
$GLOBALS['date'] = '';
$GLOBALS['link'] = '';

function startElement($parser, $name, $attrs) {

	global $current_tag;
	$current_tag = $name;

	// output opening HTML tags
	switch ($name) {
		case 'ARTICLE':
			echo '<tr>';
			break;
		case 'CONTENTNAME':
			echo '<td>';
			break;
		case 'CONTENTPUBLISHEDTIME':
			echo '<td>';
			break;
		case 'NEWSLINK':
			echo '<td>';
			break;
	}
}
// process data between tags
function characterData($parser, $data) {

	global $current_tag;

	// output opening HTML tags
	switch ($current_tag) {
		case 'CONTENTNAME':
			$GLOBALS['headline'] = $data;
			break;
		case 'CONTENTPUBLISHEDTIME':
			$GLOBALS['date'] = $data;
			break;
		case 'NEWSLINK':
			$GLOBALS['link'] = $data;
			break;
	}
}
function endElement($parser, $name) {
	
	global $current_tag;

	// output opening HTML tags
	switch ($name) {
		case 'ARTICLE':
			echo '</tr>';
			break;
		case 'CONTENTNAME':
			echo '<a href="'.$GLOBALS['link'].'">'.$GLOBALS['headline'].'</a></td>';
			break;
		case "CONTENTPUBLISHEDTIME":
			echo $GLOBALS['date'].'</td>';
			break;
		case 'NEWSLINK':
			echo $GLOBALS['link'].'</td>';
			break;
	}
	// clear current tag variable
	$current_tag = '';
}

// data file
$file = "http://www.basket.se/feed/news.asp?n=10";

// initialize parser
$xml_parser = xml_parser_create();

// set callback functions
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");

// open XML file
if (!($fp = fopen($file, "r"))) {
	die("Cannot locate XML data file: $file");
}
?>
<table border="1">
	<?
	// read and parse data
	while ($data = fread($fp, 5120)) {
		// error handler
		if (!xml_parse($xml_parser, $data, feof($fp))) {
			die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser)));	
		}
	}
	?>
</table>
<?
// clean up
xml_parser_free($xml_parser);
?>
```

Permalänk: https://www.webforum.nu/p/99647

---

Tråden på webben: https://www.webforum.nu/amne/php/99647-länk-klipps-av-vid-sax-parsing
