Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ImportedProjects
SVG
Commits
3fb1b28b
Commit
3fb1b28b
authored
Mar 11, 2014
by
Tebjan Halm
Browse files
Merge pull request #50 from messani/master
Parsing documents from inkscape
parents
31a24ea2
e95bbca0
Changes
2
Hide whitespace changes
Inline
Side-by-side
Source/SvgDocument.cs
View file @
3fb1b28b
...
...
@@ -215,16 +215,12 @@ namespace Svg
element
=
svgDocument
;
}
if
(
element
==
null
)
{
continue
;
}
// Add to the parents children
if
(
elementStack
.
Count
>
0
)
{
parent
=
elementStack
.
Peek
();
parent
.
Children
.
Add
(
element
);
if
(
parent
!=
null
&&
element
!=
null
)
parent
.
Children
.
Add
(
element
);
}
// Push element into stack
...
...
@@ -236,11 +232,17 @@ namespace Svg
goto
case
XmlNodeType
.
EndElement
;
}
if
(
element
==
null
)
{
continue
;
}
break
;
case
XmlNodeType
.
EndElement
:
// Skip if no element was created and is not the closing tag for the last
// known element
if
(
element
==
null
&&
reader
.
LocalName
!=
elementStack
.
Peek
().
ElementName
)
SvgElement
topElement
=
elementStack
.
Peek
();
if
(
element
==
null
&&
(
topElement
!=
null
&&
reader
.
LocalName
!=
topElement
.
ElementName
))
{
continue
;
}
...
...
@@ -249,7 +251,8 @@ namespace Svg
if
(
value
.
Length
>
0
)
{
element
.
Content
=
value
.
ToString
();
if
(
element
!=
null
)
element
.
Content
=
value
.
ToString
();
// Reset content value for new element
value
=
new
StringBuilder
();
}
...
...
Source/SvgElementFactory.cs
View file @
3fb1b28b
...
...
@@ -14,6 +14,7 @@ namespace Svg
internal
class
SvgElementFactory
{
private
static
List
<
ElementInfo
>
availableElements
;
private
const
string
svgNS
=
"http://www.w3.org/2000/svg"
;
/// <summary>
/// Gets a list of available types that can be used when creating an <see cref="SvgElement"/>.
...
...
@@ -77,25 +78,29 @@ namespace Svg
{
SvgElement
createdElement
=
null
;
string
elementName
=
reader
.
LocalName
;
string
elementNS
=
reader
.
NamespaceURI
;
//Trace.TraceInformation("Begin CreateElement: {0}", elementName);
if
(
elementN
ame
==
"
svg
"
)
if
(
elementN
S
==
svg
NS
)
{
createdElement
=
(
fragmentIsDocument
)
?
new
T
()
:
new
SvgFragment
();
}
else
{
ElementInfo
validType
=
AvailableElements
.
SingleOrDefault
(
e
=>
e
.
ElementName
==
elementName
);
if
(
validType
!=
null
)
if
(
elementName
==
"svg"
)
{
createdElement
=
(
SvgElement
)
Activator
.
CreateInstance
(
validType
.
ElementType
);
createdElement
=
(
fragmentIsDocument
)
?
new
T
()
:
new
SvgFragment
();
}
else
{
ElementInfo
validType
=
AvailableElements
.
SingleOrDefault
(
e
=>
e
.
ElementName
==
elementName
);
if
(
validType
!=
null
)
{
createdElement
=
(
SvgElement
)
Activator
.
CreateInstance
(
validType
.
ElementType
);
}
}
}
if
(
createdElement
!=
null
)
{
SetAttributes
(
createdElement
,
reader
,
document
);
if
(
createdElement
!=
null
)
{
SetAttributes
(
createdElement
,
reader
,
document
);
}
}
//Trace.TraceInformation("End CreateElement");
...
...
Write
Preview
Supports
Markdown
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