首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在swift中读取xml中的注释或注释节点

在swift中读取xml中的注释或注释节点
EN

Stack Overflow用户
提问于 2016-08-04 13:41:28
回答 2查看 216关注 0票数 3

首先,考虑如下所示的xml结构:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- this is a comment -->
<methods>
                <include name="test" />
                <include name="test" />
<!--            <include name="testcase-commented" />-->
<!--            <include name="testcase-commented" />-->
<!--            <include name="testcase-commented" />-->
                <include name="test" />
</methods>

从这个xml中,我可以使用NSXmlParser读取所有包含的名称。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {

    if(elementName == "include"){

        testCaseName.append(attributeDict["name"]!)
    }
}

但是注释的测试用例不会使用此方法进行解析。

有没有办法使用xml解析器从xml中只读取注释过的测试用例名称,或者这不可能在swift中从xml中读取注释过的标签?

在网上找不到解决方案。

我正在使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xcode 7.3 OSX 10.11 and swift 2.2
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-05 15:28:39

首先,我想感谢AlexanderMomchliov的伟大建议,我希望您知道如何解析xml文件。

解析器有一些重载的方法,从那里只需调用以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
func parser(parser: NSXMLParser, foundComment comment: String) {

    print(comment)
}

如果xml文件包含一些注释节点,如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- this is a comment -->
<test name="testOne">
<classes>
    <class name="TestClassOne">
        <methods>
            <include name="test_480" />
<!--                <include name="test_481" />-->
<!--                <include name="test_482" />-->
        </methods>
    </class>
</classes>
</test>

则输出将如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
this is a comment
<include name="test_481" />
<include name="test_482" />
票数 1
EN

Stack Overflow用户

发布于 2016-08-05 15:53:31

您可以重写NSXMLParserDelegate中的parser(_:foundComment:)方法,以便在找到注释时收到通知。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
func parser(parser: NSXMLParser, foundComment comment: String) {
    print(comment)
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38769042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文