如何检查 XML 标记字符串?

Posted

技术标签:

【中文标题】如何检查 XML 标记字符串?【英文标题】:How to check the XML tag string? 【发布时间】:2016-05-09 06:14:47 【问题描述】:

您好,我正在使用下面的 xml,这是我来自服务器的 xml。

 <message xmlns="jabber:client" to="91957@ip-148" id="A2EFL-1435" from="9176@ip-148"><x xmlns="jabber:x:event"><composing/><id>A2EFL-1434</id></x></message>

现在我需要检查 xml 是否具有 composing 元素。而且我没有使用任何 xml 委托。有没有可能不使用 XML 的委托方法

 NSXMLElement *events = [message elementForName:@"x"];
    NSString *eventString=[[message elementForName:@"x"] stringValue];
    if (![eventString isEqualToString:@""]) 
        NSString *composingString=[[events elementForName:@"composing"] stringValue];
        if ([composingString isEqualToString:@""]||[composingString isEqualToString:@"nil"]) 

但我需要检查 xml 标签不是值

【问题讨论】:

但是如何检查该标签是否等于“组合”字符串我对每个 xml 都有不同的名称 是的,我需要检查字符串的每个 xml 响应都有不同的字符串 如何将NSXMLElement 转换为NSString 【参考方案1】:

你可以用字符串操作来做到这一点。检查一下。

NSRange rangeValue = [xmlString rangeOfString:@"<composing>" OR @"<composing/>" OR options:NSCaseInsensitiveSearch];

if (rangeValue.length > 0)

NSLog(@"Tag is present");

 

else 

NSLog(@"Tag is not present");


【讨论】:

` NSXMLElement *events = [message elementForName:@"x"]; NSString *xmlString=(NSString *)事件; NSRange rangeValue = [xmlString rangeOfString:@"" options:NSCaseInsensitiveSearch]; if (rangeValue.length > 0) NSLog(@"组合标签存在"); ` 当我使用上面的代码时,会出现无法识别的错误 知道了,谢谢它的工作正常。但是他们是否有任何其他方式来检查 XML 元素。 唯一的选择是解析 XML。 好的,感谢您的努力。

以上是关于如何检查 XML 标记字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何在已解析的 XML 标记值上检查 Null

如何检查xml值的条件?

匹配 XML 字符串的正则表达式在 C# 中具有开始和结束标记

如何使用另一个标记属性映射 XML 标记?

System.Xml.XmlException: “=”是意外的标记。标记应为“;”

如何检查字符串是不是是有效的 XML 元素名称?