Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Karakas
SWP_SS24_Wetterdaten_sammeln
Commits
811241e3
Commit
811241e3
authored
Jun 11, 2024
by
EnesKarakas
Browse files
xml done
parent
26508673
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
frontend/package-lock.json
View file @
811241e3
...
...
@@ -14,7 +14,8 @@
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-helmet": "^6.1.0",
"react-router-dom": "^5.2.0"
"react-router-dom": "^5.2.0",
"xml-js": "^1.6.11"
},
"devDependencies": {
"@craco/craco": "^7.1.0",
...
...
@@ -16509,8 +16510,7 @@
"node_modules/sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
"dev": true
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
},
"node_modules/saxes": {
"version": "5.0.1",
...
...
@@ -19459,6 +19459,17 @@
}
}
},
"node_modules/xml-js": {
"version": "1.6.11",
"resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz",
"integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==",
"dependencies": {
"sax": "^1.2.4"
},
"bin": {
"xml-js": "bin/cli.js"
}
},
"node_modules/xml-name-validator": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
...
...
@@ -31387,8 +31398,7 @@
"sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
"dev": true
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
},
"saxes": {
"version": "5.0.1",
...
...
@@ -33680,6 +33690,14 @@
"dev": true,
"requires": {}
},
"xml-js": {
"version": "1.6.11",
"resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz",
"integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==",
"requires": {
"sax": "^1.2.4"
}
},
"xml-name-validator": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
frontend/package.json
View file @
811241e3
...
...
@@ -9,7 +9,8 @@
"react"
:
"^18.3.1"
,
"react-dom"
:
"^18.3.1"
,
"react-helmet"
:
"^6.1.0"
,
"react-router-dom"
:
"^5.2.0"
"react-router-dom"
:
"^5.2.0"
,
"xml-js"
:
"^1.6.11"
},
"scripts"
:
{
"start"
:
"craco start"
,
...
...
frontend/src/components/weather/currentData.js
View file @
811241e3
...
...
@@ -38,7 +38,11 @@ const Currentdata = (props) => {
};
const
downloadXml
=
(
weatherdata
)
=>
{
const
xml
=
jsonToXml
(
weatherdata
);
var
xml
=
jsonToXml
(
weatherdata
);
xml
=
"
<?xml version='1.0' encoding='UTF-8' ?><weatherdata>
"
+
xml
+
"
</weatherdata>
"
;
const
blob
=
new
Blob
([
xml
],
{
type
:
"
application/xml
"
});
saveAs
(
blob
,
"
weatherdata.xml
"
);
};
...
...
@@ -49,12 +53,26 @@ const Currentdata = (props) => {
saveAs
(
blob
,
"
weatherdata.csv
"
);
};
const
jsonToXml
=
(
json
)
=>
{
let
xml
=
'
<?xml version="1.0" encoding="UTF-8"?>
\n
<root>
\n
'
;
for
(
let
prop
in
json
)
{
xml
+=
` <
${
prop
}
>
${
json
[
prop
]}
</
${
prop
}
>\n`
;
const
jsonToXml
=
(
obj
)
=>
{
var
xml
=
""
;
for
(
var
prop
in
obj
)
{
xml
+=
"
<
"
+
prop
+
"
>
"
;
if
(
Array
.
isArray
(
obj
[
prop
]))
{
for
(
var
array
of
obj
[
prop
])
{
// A real botch fix here
xml
+=
"
</
"
+
prop
+
"
>
"
;
xml
+=
"
<
"
+
prop
+
"
>
"
;
xml
+=
jsonToXml
(
new
Object
(
array
));
}
}
else
if
(
typeof
obj
[
prop
]
==
"
object
"
)
{
xml
+=
jsonToXml
(
new
Object
(
obj
[
prop
]));
}
else
{
xml
+=
obj
[
prop
];
}
xml
+=
"
</
"
+
prop
+
"
>
"
;
}
xml
+
=
"
</root>
"
;
var
xml
=
xml
.
replace
(
/<
\/?[
0-9
]{1,}
>/g
,
""
)
;
return
xml
;
};
...
...
@@ -63,6 +81,7 @@ const Currentdata = (props) => {
const
values
=
Object
.
values
(
json
);
return
`
${
keys
.
join
(
"
,
"
)}
\n
${
values
.
join
(
"
,
"
)}
`
;
};
return
(
<
div
className
=
"
home-container
"
>
<
div
className
=
"
thq-grid-5
"
>
...
...
@@ -536,6 +555,18 @@ const Currentdata = (props) => {
filterArray
.
push
(
"
gust_mph
"
);
}
}
if
(
air_quality_co
||
air_quality_no2
||
air_quality_o3
||
air_quality_so2
||
air_quality_pm2_5
||
air_quality_pm10
||
air_quality_us_epa_index
||
air_quality_gb_defra_index
)
{
filterArray
.
push
(
"
air_quality
"
);
}
if
(
air_quality_co
)
{
filterArray
.
push
(
"
co
"
);
}
...
...
@@ -606,10 +637,6 @@ const Currentdata = (props) => {
console
.
error
(
"
There was a problem with the fetch operation:
"
,
error
);
});
}
function
boolToWord
(
bool
)
{
return
bool
?
"
yes
"
:
"
no
"
;
}
};
const
ListItem
=
({
name
,
country
,
region
,
lat
,
lon
})
=>
{
...
...
frontend/src/components/weather/historicalWeatherData.js
View file @
811241e3
...
...
@@ -40,7 +40,11 @@ const HistoricalWeatherData = (props) => {
};
const
downloadXml
=
(
weatherdata
)
=>
{
const
xml
=
jsonToXml
(
weatherdata
);
var
xml
=
jsonToXml
(
weatherdata
);
xml
=
"
<?xml version='1.0' encoding='UTF-8' ?><weatherdata>
"
+
xml
+
"
</weatherdata>
"
;
const
blob
=
new
Blob
([
xml
],
{
type
:
"
application/xml
"
});
saveAs
(
blob
,
"
weatherdata.xml
"
);
};
...
...
@@ -51,12 +55,26 @@ const HistoricalWeatherData = (props) => {
saveAs
(
blob
,
"
weatherdata.csv
"
);
};
const
jsonToXml
=
(
json
)
=>
{
let
xml
=
'
<?xml version="1.0" encoding="UTF-8"?>
\n
<root>
\n
'
;
for
(
let
prop
in
json
)
{
xml
+=
` <
${
prop
}
>
${
json
[
prop
]}
</
${
prop
}
>\n`
;
const
jsonToXml
=
(
obj
)
=>
{
var
xml
=
""
;
for
(
var
prop
in
obj
)
{
xml
+=
"
<
"
+
prop
+
"
>
"
;
if
(
Array
.
isArray
(
obj
[
prop
]))
{
for
(
var
array
of
obj
[
prop
])
{
// A real botch fix here
xml
+=
"
</
"
+
prop
+
"
>
"
;
xml
+=
"
<
"
+
prop
+
"
>
"
;
xml
+=
jsonToXml
(
new
Object
(
array
));
}
}
else
if
(
typeof
obj
[
prop
]
==
"
object
"
)
{
xml
+=
jsonToXml
(
new
Object
(
obj
[
prop
]));
}
else
{
xml
+=
obj
[
prop
];
}
xml
+=
"
</
"
+
prop
+
"
>
"
;
}
xml
+
=
"
</root>
"
;
var
xml
=
xml
.
replace
(
/<
\/?[
0-9
]{1,}
>/g
,
""
)
;
return
xml
;
};
...
...
frontend/src/components/weather/weatherForecastData.js
View file @
811241e3
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment