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;
4

2 回答 2

0

此代码工作正常。

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;
于 2011-01-25T22:03:12.050 回答
0

如果我xml.LoadXml()使用复制文件的字符串进行调用,则会收到一个</description没有 end的错误>。如果我解决了这个问题,我会得到一个,XmlException因为你有多个根元素。如果我删除第二个<item>,那么我可以得到这个给我标题(从我的 C# 代码动态转换):

XmlElement^ item = (XmlElement)(xml->GetElementsByTagName("item")->Item(0));
string^ title = item->GetElementsByTagName("title")->Item(0)->InnerXml;
于 2011-01-25T21:02:21.583 回答