gpt4 book ai didi

xml - 提取信息。从 XML 到 Cocoa

转载 作者:行者123 更新时间:2023-12-03 17:44:23 24 4
gpt4 key购买 nike

我正在尝试解析 XML 以提取某些变量的值。这是一个例子:

<?xml version='1.0'?>
<Main xmlns='http://www.abc.uk' version='1.0' name='full'>
<child1 version='2.0'>
<value1> xyz </value1>
<userinfo>
<name> joe </name>
<pass> joepass </pass>
</userinfo>
</child1>
</Root>

问题:如何提取要显示的“xyz”值?如何提取“joe”和“joepass”进行显示?

根据我的理解,child1 是具有属性“version”的根。 'value1' 和 'userinfo' 都是元素。在 Cocoa 中,我将如何显示这些值?我可以执行 [child elementsForName:@"userinfo",它会显示所有值。我需要专门提取“joe”和“joepass”。谢谢。

最佳答案

How do I extract the 'xyz' value to display ? How do I extract 'joe' and 'joepass' to display ?

像这样的东西。这假设您的 XML 位于 NSString 中:

NSXMLDocument* xmlDoc;
NSError* error = nil;
NSUInteger options = NSXMLNodePreserveWhitespace|NSXMLDocumentTidyXML;
xmlDoc = [[NSXMLDocument alloc] initWithXMLString:xmlString
options:options
error:&error];
if (!error)
{
NSArray* value1Nodes = [xmlDoc nodesForXPath:@".//Main/value1" error:&error];
if (!error)
{
NSXMLNode* value1node = [value1Nodes objectAtIndex:0];
NSString* value1 = [value1node stringValue];
// .. do something with value1
}

NSArray* userInfoNodes = [xmlDoc nodesForXPath:@".//Main/userinfo" error:&error];
if (!error)
{
for (NSXMLNode* userInfoNode in userInfoNodes)
{
NSXMLNode* nameNode = [[userInfoNode nodesForXPath:@"./name" error:&error] objectAtIndex:0];
NSXMLNode* passNode = [[userInfoNode nodesForXPath:@"./pass" error:&error] objectAtIndex:0];
NSString* name = [nameNode stringValue];
NSString* pass = [passNode stringValue];
// .. do something with name and pass
}
}

查看 Apple 的 Tree-Based XML Programming Guide 中的更多详细信息.

From my understanding, child1 is the root with attribute 'version'. 'value1' and 'userinfo' are both elements.

Main 是此 XML 文档中的根节点,而不是 child1

关于xml - 提取信息。从 XML 到 Cocoa,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3739854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com