我正在使用 Visual Studio 2017 并且正在学习使用 Expat(目前没有使用另一个 XML 解析库的选项),以便编写一个函数,该函数将接收嵌套在 XML 标记中的标记并检索一个字符串的内容这些标签。
因此,如果 XML 看起来像这样:
<doc>
<aa>bla</aa>
<bb>
<cc>cookie</cc>
<dd>dog</dd>
<ee>easy</ee>
</bb>
<foo>bar</foo>
</doc>
我的函数将收到如下内容:
<cc>cookie</cc>
<dd>dog</dd>
<ee>easy</ee>
并且该函数还将接收我们想要其内容的标签的名称,因此如果标签是我的函数将返回“dog”。
我对 C++ 有点陌生,完全没有使用 C 的经验。我在 Stack Overflow 中找到了三个不同的代码示例,它们基本上继承自 Expat 的outline.c。样本来自this、this和this post。
当我从这三个非常不同的示例中运行代码示例时,我得到了相同的现象 - 而不是打印出标签的全名或标签的完整内容,在所有三个示例中打印的唯一内容是标签或字符串的第一个字符。
例如,这篇文章采用了这个 XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
并打印出来
-- Note --<br>
To: Tove<br>
From: Jani<br>
Heading: Reminder<br>
Message: Don't forget me this weekend!<br>
<br>
当我使用相同的 XML 运行这篇文章中的代码示例时,我得到的是:
T<br>
J<br>
R<br>
D<br>
<br>
起初我认为代码示例一定有问题,然后就转到下一个示例。但这是一致的,所以我的设置一定有问题。恐怕我太缺乏经验了,不知道那是什么问题。
提前致谢。