我正在尝试编写一个仅显示标记和值的xpath。
这是xml文件:
public class DeviceContext : DbContext
{
public DeviceContext(DbContextOptions<DeviceContext> options) : base (options)
{
}
public DbSet<Device> Devices { get; set; }
public DbSet<IpMac> IpMacs { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<IpMac>().ToTable("Device");
modelBuilder.Entity<Device>().ToTable("Device");
Logger.Log("DeviceContext: Database & Tables SET.");
}
}
我的xpath是:
<v11:root xmlns:v11="http://example.com">
<v11:Four-Sided>
<v11:SquareName>ABCD</v11:SquareName>
<v11:RectangleName>EFGH</v11:RectangleName>
<v11:ParallelName>WXYZ</v11:ParallelName>
</v11:Four-Sided>
</v11:root>
期望的输出:
//v11:SquareName
实际输出:
<v11:SquareName>ABCD</v11:SquareName>
答案 0 :(得分:2)
XPath引擎不是将值序列化为词汇XML,而是传递XPath结果的其他软件。 (XPath用于选择节点,随后节点发生的任何事情都超出了XPath的控制范围。)
尽管如此,给定元素节点的大多数XML序列化库都会将其输出为包含所有必需命名空间声明的格式良好的XML文档。如果没有命名空间声明,你怎么知道“v11”是什么意思,或者用它做什么有用的东西?