标签: kissxml

带有libxml的Swift框架

我有使用KissXML Objective-C库的Swift Framework项目.KissXML内部使用libxml.

当我构建xcode项目(Xcode 6 - beta 5)时,我收到此错误:

error: <unknown>:0: error: '/SwiftFramework/SwiftFramework/KissXML/DDXMLNode.h:2: include of non-modular header inside framework module SwiftFramework.DDXMLNode

我已经看到这个答案讨论了将相关的头文件公开.我已经这样做但我不知道如何解决在DDXMLNode.h中导入的此标头的情况,并且这不是我的项目的明确部分:

#import <libxml/tree.h>

有关如何处理这个的任何建议?

注意:我在Objective-C only项目上使用过KissXML,它工作正常(Xcode 5).

frameworks libxml2 ios kissxml swift

7
推荐指数
1
解决办法
4118
查看次数

kissXML没有返回xpath查询的值

我试图用KissXML解析以下XML文件(使用KISSxml在iphone上生成):

<?xml version="1.0" encoding="UTF-8"?>
<SnowProfile xmlns="http://caaml.org/Schemas/V5.0/Profiles/SnowProfileIACS" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://caaml.org/Schemas/V5.0/Profiles/SnowProfileIACS http://caaml.org/Schemas/V5.0/Profiles/SnowprofileIACS/CAAMLv5_SnowProfileIACS.xsd" gml:id="2011-09-04-Home">
  <metaDataProperty>
    <MetaData>
      <dateTimeReport>2011-09-04T18:45:10-0700</dateTimeReport>
      <srcRef>
        <Operation>
          <name>My op</name>
          <contactPerson>
            <Person>
              <name>Jesse</name>
            </Person>
          </contactPerson>
        </Operation>
      </srcRef>
    </MetaData>
  </metaDataProperty>
  <validTime>
    <TimeInstant>
      <timePosition>2011-09-04T18:45:10-0700</timePosition>
    </TimeInstant>
  </validTime>
  <snowProfileResultsOf>
    <SnowProfileMeasurements dir="top down">
      <comment>Testing</comment>
      <profileDepth uom="cm">58</profileDepth>
      <skyCond>BKN</skyCond>
      <precipTI>None</precipTI>
      <airTempPres uom="degC">2</airTempPres>
      <windSpd uom="ms-1">5</windSpd>
      <windDir>
        <AspectPosition>
          <position>E</position>
        </AspectPosition>
      </windDir>
      <hS>
        <Components>
          <snowHeight uom="cm">3</snowHeight>
        </Components>
      </hS>
      <penetrationSki uom="cm">14</penetrationSki>
      <penetrationFoot uom="cm">8</penetrationFoot>
      <penetrationRam uom="cm">22</penetrationRam>
      <stratProfile>
        <Layer>
          <depthTop uom="cm">0</depthTop>
          <thickness uom="cm">27</thickness>
          <grainFormPrimary>PPsd</grainFormPrimary>
          <grainSize uom="mm">14</grainSize>
          <hardness uom="">4F</hardness>
          <lwc uom="">W</lwc>
          <density uom="kg/m3">310</density>
          <validFormationTime>
            <timeInstant>
              <timePosition>2011-09-05</timePosition> …
Run Code Online (Sandbox Code Playgroud)

xml iphone kissxml

5
推荐指数
1
解决办法
1737
查看次数

(Kiss)XML xpath和默认命名空间

我正在开发一个需要解析一些xml的iPhone项目.xml可能包含也可能不包含默认命名空间.我需要知道如何解析xml以防它使用默认命名空间.因为我需要阅读一个写xml,我倾向于使用KissXML,但我愿意接受建议.

这是我的代码:

NSString *content = [NSString stringWithContentsOfFile:[[NSBundle mainBundle]
    pathForResource:@"bookstore" ofType:@"xml"] encoding:NSUTF8StringEncoding error:nil];

DDXMLDocument *theDocument = [[DDXMLDocument alloc] initWithXMLString:content options:0 error:nil];

NSArray *results = [theDocument nodesForXPath:@"//book" error:nil];
NSLog(@"%d", [results count]);
Run Code Online (Sandbox Code Playgroud)

它在这个xml上按预期工作:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="COOKING">
  <title lang="en">Everyday Italian</title>
</book>
<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
</book>
</bookstore>
Run Code Online (Sandbox Code Playgroud)

但是当xml有一个命名空间时,它会停止工作:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore xmlns="[INSERT RANDOM NAMESPACE]">
<book category="COOKING">
  <title lang="en">Everyday Italian</title>
</book>
<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
</book>
</bookstore>
Run Code Online (Sandbox Code Playgroud)

当然,我可以预处理字符串并删除xmlns,虽然这感觉就像是一种丑陋的黑客.处理这个问题的正确方法是什么?

xml xpath objective-c ios kissxml

3
推荐指数
2
解决办法
1287
查看次数

标签 统计

kissxml ×3

ios ×2

xml ×2

frameworks ×1

iphone ×1

libxml2 ×1

objective-c ×1

swift ×1

xpath ×1