繁体   English   中英

C++ Expat 仅打印标签中元素和数据的首字母

[英]C++ Expat prints only first letter of element and of data in tags

我正在使用Visual Studio 2017,并且正在学习与Expat合作(当时使用另一个XML PRSSING库,目的是编写ZC425268EESTRIP3333131310 ant3310 AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AN AM这些标签。

因此,如果 XML 看起来像这样:

<doc>
    <aa>bla</aa>
    <bb>
        <cc>cookie</cc>
        <dd>dog</dd>
        <ee>easy</ee>
    </bb>
    <foo>bar</foo>
</doc>

我的 function 会收到这样的内容:

<cc>cookie</cc>
<dd>dog</dd>
<ee>easy</ee>

并且 function 也会收到我们想要内容的标签的名称,所以如果标签是我的 function 将返回“狗”。

我对 C++ 有点陌生,完全没有 C 的经验。 我在 Stack Overflow 中找到了三个不同的代码示例,它们基本上继承自 Expat 的outline.c 样本来自thisthisthis 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>

起初我认为代码示例一定有问题,然后就转到下一个示例。 但这是一致的,所以我的设置一定有问题。 恐怕我太缺乏经验了,不知道这是怎么回事。

提前致谢。

问题是我认为我会使用 Expat 的支持 unicode 的 dll,因为那是我会为任何可能发生的事情做好准备。 因此 expat 读取了每个元素或标签内容的第一个字符中的第二个字节,并认为它的空虚意味着这就是整个事情的结束并继续前进。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM