Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
GSoC
GSoC2018
macOS
vlc
Commits
34fabb83
Commit
34fabb83
authored
Dec 25, 2011
by
Hugo Beauzée-Luyssen
Committed by
Jean-Baptiste Kempf
Dec 30, 2011
Browse files
dash: XML: handle text nodes.
Signed-off-by:
Jean-Baptiste Kempf
<
jb@videolan.org
>
parent
8ceecb11
Changes
3
Hide whitespace changes
Inline
Side-by-side
modules/stream_filter/dash/xml/DOMParser.cpp
View file @
34fabb83
...
...
@@ -74,24 +74,29 @@ Node* DOMParser::processNode ()
{
const
char
*
data
;
int
type
=
xml_ReaderNextNode
(
this
->
vlc_reader
,
&
data
);
if
(
type
!=
-
1
&&
type
!=
XML_READER_TEXT
&&
type
!=
XML_READER_NONE
&&
type
!=
XML_READER_ENDELEM
)
if
(
type
!=
-
1
&&
type
!=
XML_READER_NONE
&&
type
!=
XML_READER_ENDELEM
)
{
Node
*
node
=
new
Node
();
node
->
setType
(
type
);
std
::
string
name
=
data
;
bool
isEmpty
=
xml_ReaderIsEmptyElement
(
this
->
vlc_reader
);
node
->
setName
(
name
);
if
(
type
!=
XML_READER_TEXT
)
{
std
::
string
name
=
data
;
bool
isEmpty
=
xml_ReaderIsEmptyElement
(
this
->
vlc_reader
);
node
->
setName
(
name
);
this
->
addAttributesToNode
(
node
);
this
->
addAttributesToNode
(
node
);
if
(
isEmpty
)
return
node
;
if
(
isEmpty
)
return
node
;
Node
*
subnode
=
NULL
;
while
((
subnode
=
this
->
processNode
())
!=
NULL
)
node
->
addSubNode
(
subnode
);
Node
*
subnode
=
NULL
;
while
((
subnode
=
this
->
processNode
())
!=
NULL
)
node
->
addSubNode
(
subnode
);
}
else
node
->
setText
(
data
);
return
node
;
}
return
NULL
;
...
...
modules/stream_filter/dash/xml/Node.cpp
View file @
34fabb83
...
...
@@ -27,11 +27,16 @@
#include
"Node.h"
#include
<cassert>
#include
<vlc_common.h>
#include
<vlc_xml.h>
using
namespace
dash
::
xml
;
const
std
::
string
Node
::
EmptyString
=
""
;
Node
::
Node
()
Node
::
Node
()
:
type
(
-
1
)
{
}
Node
::~
Node
()
...
...
@@ -89,9 +94,31 @@ bool Node::hasText () const
const
std
::
string
&
Node
::
getText
()
const
{
return
EmptyString
;
if
(
this
->
type
==
XML_READER_TEXT
)
return
this
->
text
;
else
{
assert
(
this
->
subNodes
.
size
()
==
1
);
return
this
->
subNodes
[
0
]
->
getText
();
}
}
void
Node
::
setText
(
const
std
::
string
&
text
)
{
this
->
text
=
text
;
}
const
std
::
map
<
std
::
string
,
std
::
string
>&
Node
::
getAttributes
()
const
{
return
this
->
attributes
;
}
int
Node
::
getType
()
const
{
return
this
->
type
;
}
void
Node
::
setType
(
int
type
)
{
this
->
type
=
type
;
}
modules/stream_filter/dash/xml/Node.h
View file @
34fabb83
...
...
@@ -49,13 +49,18 @@ namespace dash
std
::
vector
<
std
::
string
>
getAttributeKeys
()
const
;
bool
hasText
()
const
;
const
std
::
string
&
getText
()
const
;
void
setText
(
const
std
::
string
&
text
);
const
std
::
map
<
std
::
string
,
std
::
string
>&
getAttributes
()
const
;
int
getType
()
const
;
void
setType
(
int
type
);
private:
static
const
std
::
string
EmptyString
;
std
::
vector
<
Node
*>
subNodes
;
std
::
map
<
std
::
string
,
std
::
string
>
attributes
;
std
::
string
name
;
std
::
string
text
;
int
type
;
};
}
...
...
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