我是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>
...
我想从第一个项目获取标题标签。而且我不知道如何。请帮助。
UPD。 我尝试了这段代码,但它不起作用:(
xml -> DocumentElement -> GetElementsByTagName("item") -> Item(0) -> ChildNodes -> GetElementsByTagName("title") -> Item(0) -> InnerXml;
答案 0 :(得分:0)
如果我使用复制您的文件的字符串来调用xml.LoadXml()
,则会收到</description
没有结尾>
的错误。如果我解决了这个问题,我会得到一个XmlException
,因为你有多个根元素。如果我删除第二个<item>
,那么我可以让它给我标题(从我的C#代码中即时转换):
XmlElement^ item = (XmlElement)(xml->GetElementsByTagName("item")->Item(0));
string^ title = item->GetElementsByTagName("title")->Item(0)->InnerXml;
答案 1 :(得分: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;