美好的一天,我有一个UML类图导出到XML文件,代码基本上和重复是这样的:
<UML:Class name="Zip Code" isLeaf="false" xmi.id="{C7C65474-DD51-4165-89A0-FB552A929185}" isAbstract="false" visibility="public">
所以,我需要做的是向用户输出文件中找到的所有类(等)。 更确切地说,我需要读取双引号内的名称。
更准确地说,从特定标签中读取双引号内的字符串,例如:
获取我必须搜索的所有类名:<UML:Class name=" STRING WHAT I WANNA GET "
获取我必须搜索的所有属性名称:<UML:Attribute name=" STRING I WANNA GET "
编辑 我尝试了但是sttil无法正常工作:x
我有这个;
使用example.php
<?php
$xmlstr = <<<XML
<UML:Class name="Colaborator" isLeaf="false" xmi.id="{B8D626AE-F100-4548-9136-057E68BE577D}" isAbstract="false" visibility="public">
<UML:Classifier.feature>
<UML:Attribute name="Colaborator Name" xmi.id="{BB9111A8-740A-4463-9DF8-719E21E3F1CC}" ownerScope="instance" visibility="private" changeability="changeable">
<UML:StructuralFeature.type>
<UML:Classifier xmi.idref="Dttp0"/>
<UML:lol> sfdsf </UML:lol>
</UML:StructuralFeature.type>
</UML:Attribute>
<UML:Attribute name="Colaborator Address" xmi.id="{D7C15DA3-F86B-4696-874C-C69F94CDEE51}" ownerScope="instance" visibility="private" changeability="changeable">
<UML:StructuralFeature.type>
<UML:Classifier xmi.idref="Dttp1"/>
</UML:StructuralFeature.type>
</UML:Attribute>
</UML:Classifier.feature>
</UML:Class>
XML;
?>
并在test.php中
<?php
include 'example.php';
$UML:Class = new SimpleXMLElement($xmlstr);
foreach ($UML:Class->xpath('//UML:Attribute') as $attr) {
echo $attr->name, PHP_EOL;
}
?>
答案 0 :(得分:0)
如果您只需要名称(也许是偏移):
regex: name="([\w ]+)"
否则,您将需要使用XML解析器。