您好我试图用simplexml解析XML.问题是我无法访问atributtes,任何想法为什么?
PHP代码:
$xml = simplexml_load_file($source);
foreach($xml->children() as $node) {
foreach ($node->AttrList->attributes() as $attribute) {
print_r ($attribute);
}
}
Run Code Online (Sandbox Code Playgroud)
一块XML:
<ProductCatalog>
<Product>
<ProductCode>ST905003FND2E1-RK</ProductCode>
<Vendor>SEAGATE</Vendor>
<ProductType>HDD External</ProductType>
<ProductCategory>Cietie diski</ProductCategory>
<ProductDescription>HDD External SEAGATE FreeAgent Go 5400.2 (2.5",500GB,8MB cache,USB 2.0,FreeAgent software) Black</ProductDescription>
<Image>https://www.it4profit.com/catalogimg/wic/1/ST905003FND2E1-RK</Image>
<ProductCard>https://content.it4profit.com/itshop/itemcard_cs.jsp?ITEM=90728055033221913&THEME=asbis&LANG=lv</ProductCard>
<AttrList>
<element Name="Device Location" Value="External"/>
<element Name="Hard Drive Type" Value="Portable"/>
<element Name="Form Factor" Value="2.5""/>
<element Name="Storage Capacity" Value="500000 MB"/>
<element Name="Supports Data Channel" Value="USB 2.0"/>
<element Name="Installed Cache Memory Storage Capacity" Value="8 MB"/>
<element Name="Sector Capacity" Value="512 B"/>
<element Name="Rotational …Run Code Online (Sandbox Code Playgroud) 当我这样做时,print_r($nodes);我得到:
Array (
[0] => SimpleXMLElement Object (
[kategoria_6] => 1
[opis_6] => 1
[img] => slides/slide0.jpg
)
[1] => SimpleXMLElement Object (
[kategoria_6] => 2
[opis_6] => 2
[img] => slides/slide1.jpg
)
[2] => SimpleXMLElement Object (
[kategoria_6] => 3
[opis_6] => 3
[img] => slides/slide4.jpg
)
[3] => SimpleXMLElement Object (
[kategoria_6] => 4
[opis_6] => 4
[img] => slides/slide3.jpg
)
[4] => SimpleXMLElement Object (
[kategoria_6] => 7
[opis_6] => 7
[img] => slides/slide2.jpg
) …Run Code Online (Sandbox Code Playgroud) 我解析包含这样的字段的xml文件:
<offers>
<offer>
<type>Vehicle</type>
<type-id>2</type-id>
<category>Car</category>
<category-id>3</category-id>
...
</offer>
<offer>
<type>Vehicle</type>
<type-id>2</type-id>
<category>Car</category>
<category-id>3</category-id>
...
</offer>
...
</offers>
Run Code Online (Sandbox Code Playgroud)
$xml = simplexml_load_file($file);首先使用,然后尝试在foreach循环中获取值后,出现错误“使用未定义的常数id-假定的'id'”,其中字段包含“ id”作为它们的一部分,例如“ type-id”或“ category-id”
foreach($xml->offers->offer as $offer) {
echo $offer->type; // WORKS JUST FINE
echo $offer->type-id; //THIS GIVE ME ERROR
}
Run Code Online (Sandbox Code Playgroud)
我尝试设置,ini_set('error_reporting', E_ALL & ~E_NOTICE);但在它后面带有“ id”的字段返回零而不是值。
我在项目中使用 SimpleXMLElement 类来处理 xml 文件。
我的问题是:如何获取具有某些属性的某些标签的属性值?您可能会假设我知道标签的名称、属性的名称及其在 xml 文件中的位置。例如,对于这样一个<someTag cp="c2">知道值“someTag”和“cp”的字符串,我想获取字符串“c2”。
感谢是提前的。
我正在使用SimpleXML来解析XMl文档.我需要能够读取/更新节点属性.
在这个XML文档中
<root>
<node>ABC</node>
<key>123</key>
<node2>
<key>456</key>
</node2>
<key>789</key>
</root>
Run Code Online (Sandbox Code Playgroud)
如何读取/更新所有关键节点?该文档没有特定的结构,所以我需要能够在不知道其位置的情况下找到它们.假设我想将关键节点中的数字乘以2.我该怎么做?
韩国社交协会.
我有一些不会打印的数据....
echo工作,但不是printf
字符串中有数据,simplexml_load_string也不会解析字符串.
有一些二进制或不可见的字符,我看不到,无法获得序数值导致printf失败以及PHP中的大多数其他字符串函数.
显然这是一个编码问题,但是,我不知道如何找出它是什么,所以我可以正确编码/解码它.
$string = getStringFromDatabase();
printf($string);
Run Code Online (Sandbox Code Playgroud)
...
Nothing is displayed
Run Code Online (Sandbox Code Playgroud)
...
No errors, No Warnings, No Nothing
Run Code Online (Sandbox Code Playgroud)
显然那里有数据,我知道如果我循环遍历每一个字符,那么,我不会去那里.
[更新]这很奇怪,因为序数值超出了典型的ASCII范围.
ord($ buffer [$ i])= 1610
它是DLE和LF角色的组合.不知道它是如何到达那里或为什么.或者它应该是什么,任何一方的数据都是有效的,而且这个位置很奇怪.
想想<在这里冒犯char> 0,000