0

xml を解析している間、いくつかの単語行が read more で終わった後、完全なデータではありません

以下の 3 つのコードは、理解を深めるために 1 つの HTML ページに含まれています。

NSXMLParser を使用して、これを iPhone アプリに解析しています。問題はその<Style>下までの解析であり、その後テキストからの解析を停止し、テキストの下のデータを完全に無視します!!!

<head>

        <title>North Mobile County Middle School: Latest News > "1st Annual NMCK-8 Christmas Music Program"</title>
        <META HTTP-EQUIV="X-UA-COMPATIBLE" CONTENT="IE=EmulateIE9">
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <meta http-equiv="imagetoolbar" content="no">
        <script type="text/javascript" src="JavaScripts.js"></script>
        <script type="text/javascript" src="JavaScripts/NiceTitles.js"></script>


    <style type="text/css">

理解を深めるためにコードを分割しています

!--

body {
    margin:0; padding:0;
    background: #fff;}  
body, td {
    font: normal 13px "Trebuchet MS", Arial, Helvetica, sans-serif;
    color:#333;}
/***********************************************/
/* Links
/***********************************************/ 

a:link, a:visited {
    color: #CD0000;
    text-decoration: none;}
a:hover, a:active { 
    color: #06f;
    text-decoration: underline;}

img {border: 0;}

理解を深めるためにコードを分割しています

#MainPageArea {padding: 0 15px 15px 15px}
</style>
    <link href="http://images.pcmac.org/SiSFiles/Schools/AL/MobileCounty/NorthMobileMiddle/styles.css" rel="stylesheet" type="text/css">
    <!--[if lt IE 7]>
        <link href="Common/CommonIncludes/Template11/IEStyles.css" rel="stylesheet" type="text/css">
    <![endif]-->
    <link rel="Shortcut Icon" type="image/ico" href="http://images.pcmac.org/SiSFiles/Schools/AL/MobileCounty/NorthMobileMiddle/images/favicon.ico" />

</head>
<body class="DefaultPage">
    <table align="center" cellpadding="0" cellspacing="0" width="986" border="0" id="PageWrapper">
        <tr>
            <td valign="top">
                <div id="Header">

私は以下のようなコードを使用しています:

-(id) loadHtmlByURL:(NSString *)urlString
{

    NSURL       *url        = [NSURL URLWithString:urlString];
    NSData      *nsData     = [[NSData alloc] initWithContentsOfURL:url];

    elementArray            = [[NSMutableArray alloc] init];

    parser                  = [[NSXMLParser alloc] initWithData:nsData];
    parser.delegate         = self;
    [parser parse];

    currentHTMLElement = [HtmlElement alloc];

    return self;
}

- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    NSLog(@"%@",elementname);
    currentHTMLElement = [[HtmlElement alloc] autorelease];
}

- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
    NSLog(@"%@",elementname);
if ([elementname isEqualToString:@"head"])
    {
        currentHTMLElement.tag = elementname;
        currentHTMLElement.value = currentNodeContent;
        [elementArray addObject:currentHTMLElement];
        currentHTMLElement = nil;
        currentNodeContent = nil;
       // NSLog(@"x%@",elementArray);
    }

私が打たれたことを知ることができますか

4

2 に答える 2

1

NSXMLParserこのクラスは、実際に XML のものを解析するためにのみ使用する必要があります。ソースがそうでない XHTML の場合を除いて、HTML はそうではありませmetastyle。また、のテキスト ノードのコンテンツには、 andのtitleエスケープ バージョンのみを含める必要が あります(エスケープ シーケンスはandです)。>"&gt;&quot;

HTML を管理している場合は、HTML を XML (したがって XHTML) に準拠するように変更してみてください。HTML を変更できない場合は、たとえばhppleを使用して、タグ スープの解析を試してください。

于 2012-12-28T07:52:29.283 に答える
0

HTMLページの解析のチュートリアルは次のとおりです http://www.raywenderlich.com/14172/how-to-parse-html-on-ios

于 2013-06-14T03:25:12.633 に答える