【问题标题】:How to convert text file to xml in xcode如何在xcode中将文本文件转换为xml
【发布时间】:2012-11-21 22:19:11
【问题描述】:

我有一个大文本文件,我想将其转换为 Xcode。我将主包中的文本文件(拖放)添加到我的项目中。我可以看到文本文件viewDidLoad.
但我喜欢将其转换为 XML 文件。例如我的文件看起来像:

  asasasasasas          
  wewewewewewe        
  qwqwqwqwqwqw
xyz_ 22 aaaaaaaaaaa        
fgfgfgfgfgfgfg        
ererererererer

abc_ 12 bbbbbbbbbb       
jkjkjkjkjkjkjk     
lalallalalalal

在上面提到的,我想消除前3行,从xyz_ 22作为(父)开始,jkjkjkj作为子lalalala作为子。

我只需要知道如何实现它...我会写代码:)

我的代码: - (IBAction)readUsingObjectiveC:(id)pId { NSString * zStr = [NSString stringWithContentsOfFile:@"/Users/dd007/Desktop/abc.txt" encoding:NSASCIIStringEncoding error:NULL]; NSLog(@"readUsingObjectiveC zStr=\n%@",zStr);

// now to extract the data line by line
NSArray * zAryOfLines = [zStr componentsSeparatedByString:@"\n"];
if([zAryOfLines count] == 0) 
{
    NSLog(@"readUsingObjectiveC zAryOfLines count = 0");
    return;
} 
//for (int i=0; i<([zAryOfLines count]-30); ++i)
for ( int i=30; i<zAryOfLines ; i++)  

{
         if([[zAryOfLines objectAtIndex:i] isEqualToString:@"xyz_ "])
         {
             NSLog(@"<msg1>%@<msg1/>\n",[zAryOfLines objectAtIndex:i]);
             NSLog(@"<msg2>%@<msg2/>\n",[zAryOfLines objectAtIndex:i+1]);
             NSLog(@"<msg3>%@<msg3/>\n",[zAryOfLines objectAtIndex:i+2]);
[zArrayOfLines writeToFIle:@"/.....documents/..save.xml" automatically:YES encodingNSASCIIStringEncoding error:NULL];             
         }
     }

我正在转换成 xml 格式,但我喜欢将文件保存为 .xml .. 但我收到错误任何人都可以告诉我我在哪里做错了吗??????

【问题讨论】:

  • 我想..首先您需要将文本文件的内容提取到 NSString

标签: iphone objective-c xcode ipad ios-simulator


【解决方案1】:

您不能使用 XCode 将文件转换为 xml,您有两种选择:

您可以创建解析文件并生成 XML 文件的 python 或 ruby​​ 脚本,然后使用 xml 解析器,

或者你可以创建一个类,用你想要的规则解析你的纯文件。

【讨论】:

  • 我有同样的想法来实现你在第二个选项中提到的......然后我必须阅读每一行并且必须为 body 、 parent 、 child 制作一个 xml 标签......我是对的吗??
【解决方案2】:

我认为您想将 .txt 转换为 .xml,因此为了实现这一点,我将 .txt 读取为 nsstring,我使用 NSString 的 componentsSeparatedByString:@"\n" 方法将其剪切为 NSArray(注意 \ r 字符),然后不要使用您不想要的行并创建一个新的 NSString 以将标签 XML 添加到您的行中,如果您现在放置好标签或使用 NSArray 中包含您的行进行检查以完成刚刚保存在扩展名为 .xml 的新文件中。

如果您在编写我描述的代码时需要帮助,请说出来。

【讨论】:

  • @ user1770436 感谢您的想法太棒了...我喜欢它...如果您有一些示例代码...我喜欢它:)因为它会减少我的工作..再次感谢
【解决方案3】:

在 iOS 中没有直接将文本转换为 xml 的选项。 但是您可以通过手动传递数据来做到这一点。

您可以使用libXml 框架或GDataXml 来执行此操作。

对于libXml xml 生成示例代码,请转到此link 并下载第 10 章.zip

请查看本教程以获取Read and Write XML Documents with GDataXML

另外TCMXMLWriter 是一个开源的xmlgenerator:

【讨论】:

    【解决方案4】:

    我认为这样的代码适用于您的示例:

    NSString *contentFile = [[NSString alloc] initWithContentsOfFile:pathFile encoding:NSUTF8StringEncoding error:nil];
    NSArray *lineFile = [contentFile componentsSeparatedByString:@"\n"];
    NSMutableString *xmlFile = [[NSMutableString alloc] init];
    For(int i = 3; i < lineFile.count; i++)//i = 3 for don't take the 3 first line
    {
        if ([((NSString *)[lineFile objectAtIndex:i]) rangedOfString:@"test"].location != NSNotFound)
        {
            xmlFile = [NSString stringWithFormat:@"%@<nameTag>%@</nameTag>", xmlFile, (NSString *)[lineFile objectAtIndex:i]];
        }
        else if ...
    }
    

    并将他的 nsstring 保存在新文件中。可能在循环中按数字生成,例如如果 i 是 3 的 4 的倍数等...

    【讨论】:

    • 它不起作用我尝试将文本转换为字符串到数组并为特定字符制作标签...但它没有转换为 xml 格式..
    • [xmlFile writeToFile:@/....documents..xml" 自动:YES 编码:NSASCIIStringEncoding 错误:Null] 哇它工作正常 :) 谢谢朋友
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多