CLR C++有关 GetElementsByTagName 的语法问题

发布于 2024-10-14 05:39:49 字数 846 浏览 3 评论 0原文

我是c++新手。我有 xml 文件和此代码:

XmlDocument^ xml = gcnew XmlDocument();
xml -> Load( "url.xml" );

box -> Text = xml -> DocumentElement -> GetElementsByTagName("item") -> Item(0) -> GetElementsByTagName("title") -> Item(0) -> InnerXml; // This code doesnt work.

和 xml 文件:

 <item>
      <pubDate>date</pubDate>
      <title>title</title>
      <author>author</author>
      <description>description</description
 </item>
 <item>
 ...

我想从第一个项目获取标题标签。我不知道怎么办。请帮忙。

更新。 我尝试了这段代码,但它不起作用:(

xml -> DocumentElement -> GetElementsByTagName("item") -> Item(0) -> ChildNodes  -> GetElementsByTagName("title") -> Item(0) -> InnerXml;

I'm newbie in c++. I have xml file and this code:

XmlDocument^ xml = gcnew XmlDocument();
xml -> Load( "url.xml" );

box -> Text = xml -> DocumentElement -> GetElementsByTagName("item") -> Item(0) -> GetElementsByTagName("title") -> Item(0) -> InnerXml; // This code doesnt work.

and xml file:

 <item>
      <pubDate>date</pubDate>
      <title>title</title>
      <author>author</author>
      <description>description</description
 </item>
 <item>
 ...

I want get title tag from first Item. And I dont know how. Help please.

upd.
I tried this code, but it not work :(

xml -> DocumentElement -> GetElementsByTagName("item") -> Item(0) -> ChildNodes  -> GetElementsByTagName("title") -> Item(0) -> InnerXml;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我爱人 2024-10-21 05:39:49

如果我使用复制文件内容的字符串调用 xml.LoadXml() ,则会收到一条错误,指出 没有结尾 <代码>>。如果我解决这个问题,我会收到 XmlException 因为您有多个根元素。如果我删除第二个 ,那么我可以得到这个标题(从我的 C# 代码即时转换):

XmlElement^ item = (XmlElement)(xml->GetElementsByTagName("item")->Item(0));
string^ title = item->GetElementsByTagName("title")->Item(0)->InnerXml;

If I call xml.LoadXml() using a string that copies what you have for your file, I get an error that </description doesn't have an end >. If I fix that, I get an XmlException because you have multiple root elements. If I remove the second <item>, then I can get this to give me the title (converted on the fly from my C# code):

XmlElement^ item = (XmlElement)(xml->GetElementsByTagName("item")->Item(0));
string^ title = item->GetElementsByTagName("title")->Item(0)->InnerXml;
歌枕肩 2024-10-21 05:39:49

这段代码工作正常。

System::String ^ item =  xml -> DocumentElement -> GetElementsByTagName("item")->Item(0) -> OuterXml;

XmlDocument^ xmlt = gcnew XmlDocument();
xmlt -> LoadXml( item );

System::String^ title = xmlt -> DocumentElement -> GetElementsByTagName("title")->Item(0)-> OuterXml;

box -> Text = title;

This code work fine.

System::String ^ item =  xml -> DocumentElement -> GetElementsByTagName("item")->Item(0) -> OuterXml;

XmlDocument^ xmlt = gcnew XmlDocument();
xmlt -> LoadXml( item );

System::String^ title = xmlt -> DocumentElement -> GetElementsByTagName("title")->Item(0)-> OuterXml;

box -> Text = title;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文